diff --git a/echo b/echo
deleted file mode 100644
index 7a95a6562..000000000
--- a/echo
+++ /dev/null
@@ -1,14029 +0,0 @@
-]0;IPython: Documents/saplVIRTUAL_ENV -> /home/eduardo/.virtualenvs/sapl/lib/python3.4/site-packages
-============================= test session starts ==============================
-platform linux -- Python 3.4.3, pytest-2.9.2, py-1.4.31, pluggy-0.3.1
-django settings: sapl.settings (from ini file)
-rootdir: /home/eduardo/Documents/sapl, inifile: pytest.ini
-plugins: cov-2.3.0, django-2.9.1, ipdb-0.1-prerelease2
-collected 2013 items
-
-sapl/test_urls.py .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................F....F....F....F....F....F.........F....F....F....F....F....F....F....F.........F....F....F....F....F....F....F....F....F....F....F....F....F....F....F....F....F....F....F...........F....F....F....F....F..............................................................................FFFFFFFFFFFFFFFFFFF................................................................................................................................................................................................................................................................................................................................................................................................................FFFFFFFFFF.............................................................FFFFFF.FFF.FFFFFFFFFFFFFFFFFFFFFFF..F
-
-=================================== FAILURES ===================================
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item238] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc050365a60>, 'sistema/app-config/', [], 'sapl.base')
-admin_client = <django.test.client.Client object at 0x7fc04ccd25c0>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04caa7d68>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item243] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04ec17bf8>, 'sistema/bancada/', [], 'sapl.sessao')
-admin_client = <django.test.client.Client object at 0x7fc04cdc8d68>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04cb73f28>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item248] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04ec17ea0>, 'sistema/bloco/', [], 'sapl.sessao')
-admin_client = <django.test.client.Client object at 0x7fc04c77d7b8>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04cab9240>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item253] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04ec201e0>, 'sistema/cargo-bancada/', [], 'sapl.sessao')
-admin_client = <django.test.client.Client object at 0x7fc04c8a97f0>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c756be0>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item258] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc0503657b8>, 'sistema/casa-legislativa/', [], 'sapl.base')
-admin_client = <django.test.client.Client object at 0x7fc04cc49940>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04cb67eb8>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item263] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f9c6620>, 'sistema/coligacao/', [], 'sapl.parlamentares')
-admin_client = <django.test.client.Client object at 0x7fc04c4936a0>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04d039898>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item273] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc05036cb70>, 'sistema/comissao/cargo/', [], 'sapl.comissoes')
-admin_client = <django.test.client.Client object at 0x7fc04ca55e80>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c733828>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item278] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc05036ce18>, 'sistema/comissao/periodo-composicao/', [], 'sapl.comissoes')
-admin_client = <django.test.client.Client object at 0x7fc04c5c87f0>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c621da0>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item283] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc050378158>, 'sistema/comissao/tipo/', [], 'sapl.comissoes')
-admin_client = <django.test.client.Client object at 0x7fc04c8e7710>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c733208>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item288] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f9c6b70>, 'sistema/frente/', [], 'sapl.parlamentares')
-admin_client = <django.test.client.Client object at 0x7fc04c5d5e10>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c586c50>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item293] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc0502df488>, 'sistema/lexml/provedor/', [], 'sapl.lexml')
-admin_client = <django.test.client.Client object at 0x7fc04cbd9f28>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c6df828>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item298] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc0502df730>, 'sistema/lexml/publicador/', [], 'sapl.lexml')
-admin_client = <django.test.client.Client object at 0x7fc04c67cf28>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04cda6a90>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item303] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f9f0bf8>, 'sistema/materia/autor/', [], 'sapl.materia')
-admin_client = <django.test.client.Client object at 0x7fc04c4ce7f0>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c3b8dd8>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item308] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f9f91e0>, 'sistema/materia/orgao/', [], 'sapl.materia')
-admin_client = <django.test.client.Client object at 0x7fc04ca41e10>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c8bc630>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item318] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f9e5b70>, 'sistema/materia/regime-tramitacao/', [], 'sapl.materia')
-admin_client = <django.test.client.Client object at 0x7fc04cb5e0b8>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04cbb8400>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item323] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f9f0ea0>, 'sistema/materia/status-tramitacao/', [], 'sapl.materia')
-admin_client = <django.test.client.Client object at 0x7fc04c7ef2b0>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c77b9b0>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item328] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f9e5e18>, 'sistema/materia/tipo-autor/', [], 'sapl.materia')
-admin_client = <django.test.client.Client object at 0x7fc04c557b70>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c77db38>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item333] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f9f0158>, 'sistema/materia/tipo-documento/', [], 'sapl.materia')
-admin_client = <django.test.client.Client object at 0x7fc04c37c550>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c497550>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item338] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f9f0400>, 'sistema/materia/tipo-fim-relatoria/', [], 'sapl.materia')
-admin_client = <django.test.client.Client object at 0x7fc04c6f8668>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c800780>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item343] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f9e58c8>, 'sistema/materia/tipo/', [], 'sapl.materia')
-admin_client = <django.test.client.Client object at 0x7fc04c40f198>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c5e3c50>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item348] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f9f06a8>, 'sistema/materia/unidade-tramitacao/', [], 'sapl.materia')
-admin_client = <django.test.client.Client object at 0x7fc04c306860>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c306c18>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item353] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f9d91e0>, 'sistema/mesa-diretora/cargo-mesa/', [], 'sapl.parlamentares')
-admin_client = <django.test.client.Client object at 0x7fc04c4e7860>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c85c3c8>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item358] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f9cfea0>, 'sistema/mesa-diretora/sessao-legislativa/', [], 'sapl.parlamentares')
-admin_client = <django.test.client.Client object at 0x7fc04c3a02b0>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c899128>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item363] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f9fd510>, 'sistema/norma/assunto/', [], 'sapl.norma')
-admin_client = <django.test.client.Client object at 0x7fc04c593898>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04ca50cc0>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item368] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f9fd268>, 'sistema/norma/tipo/', [], 'sapl.norma')
-admin_client = <django.test.client.Client object at 0x7fc04c718be0>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c8eb978>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item373] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f9c6e18>, 'sistema/parlamentar/legislatura/', [], 'sapl.parlamentares')
-admin_client = <django.test.client.Client object at 0x7fc04c7a9358>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c67ceb8>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item378] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f9cf400>, 'sistema/parlamentar/nivel-instrucao/', [], 'sapl.parlamentares')
-admin_client = <django.test.client.Client object at 0x7fc04d032f98>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c79f710>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item383] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f9cfbf8>, 'sistema/parlamentar/partido/', [], 'sapl.parlamentares')
-admin_client = <django.test.client.Client object at 0x7fc04c55c470>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c985470>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item388] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f9cf6a8>, 'sistema/parlamentar/tipo-afastamento/', [], 'sapl.parlamentares')
-admin_client = <django.test.client.Client object at 0x7fc04c40c5c0>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c765e80>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item393] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f9cf158>, 'sistema/parlamentar/tipo-dependente/', [], 'sapl.parlamentares')
-admin_client = <django.test.client.Client object at 0x7fc04c7f78d0>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c8bceb8>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item398] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f9cf950>, 'sistema/parlamentar/tipo-militar/', [], 'sapl.parlamentares')
-admin_client = <django.test.client.Client object at 0x7fc04c493a20>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c4d8710>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item403] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f9e5620>, 'sistema/proposicao/autor/', [], 'sapl.materia')
-admin_client = <django.test.client.Client object at 0x7fc04c6f8588>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04cbb2668>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item408] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f9e5378>, 'sistema/proposicao/tipo/', [], 'sapl.materia')
-admin_client = <django.test.client.Client object at 0x7fc04c9838d0>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c85ed30>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item420] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04ec17950>, 'sistema/sessao-plenaria/tipo-expediente/', [], 'sapl.sessao')
-admin_client = <django.test.client.Client object at 0x7fc04c534e80>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c5b6e10>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item425] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04ec176a8>, 'sistema/sessao-plenaria/tipo-resultado-votacao/', [], 'sapl.sessao')
-admin_client = <django.test.client.Client object at 0x7fc04c9527f0>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04ca00550>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item430] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04ec17400>, 'sistema/sessao-plenaria/tipo/', [], 'sapl.sessao')
-admin_client = <django.test.client.Client object at 0x7fc04c55ce48>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c4474e0>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item435] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f91e400>, 'sistema/status-tramitacao-adm/', [], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04c260c50>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c592b00>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-________ test_crudaux_list_do_crud_esta_na_pagina_sistema[url_item440] _________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f91e158>, 'sistema/tipo-documento-adm/', [], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04c83d860>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_crudaux_list_do_crud_esta_na_pagina_sistema(url_item, admin_client):
-    
-        # Verifica a url é de um CrudAux e, se for, testa se está
-        # na página Tabelas Auxiliares
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        view_class = None
-        if hasattr(key, 'view_class'):
-            view_class = key.view_class
-    
-        # se não tem view_class, possivelmente não é uma classed base view
-        if not view_class:
-            return
-    
-        # se não tem atributo crud, não é será nenhum tipo de crud
-        if not hasattr(view_class, 'crud'):
-            return
-    
-        herancas_crud = list(map(str, type.mro(view_class.crud)))
-        for string_class in herancas_crud:
-            if 'CrudAux' in string_class:
-    
-                herancas_view = list(map(str, type.mro(view_class)))
-    
-                for string_view_class in herancas_view:
-                    # verifica se o link para manutenção do crud está em /sistema
-                    if 'ListView' in string_view_class:
->                       response = admin_client.get('/sistema', {}, follow=True)
-
-sapl/test_urls.py:141: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c92d0f0>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
-_________________________ test_urlpatterns[url_item16] _________________________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f9d9510>, 'docadm/', [], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04c366048>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/docadm/) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-_________________________ test_urlpatterns[url_item17] _________________________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f98fd90>, 'docadm/%(pk)s', ['pk'], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04c366b00>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/docadm/1) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-_________________________ test_urlpatterns[url_item18] _________________________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f98fea0>, 'docadm/%(pk)s/delete', ['pk'], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04c469b38>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/docadm/1/delete) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-_________________________ test_urlpatterns[url_item19] _________________________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f98fe18>, 'docadm/%(pk)s/edit', ['pk'], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04c8bbb38>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/docadm/1/edit) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-_________________________ test_urlpatterns[url_item20] _________________________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f9d97b8>, 'docadm/create', [], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04c3b4550>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/docadm/create) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-_________________________ test_urlpatterns[url_item21] _________________________
-
-url_item = (<function DocumentoAcessorioAdministrativoView at 0x7fc050280510>, 'docadm/doc-ace-adm/%(pk)s', ['pk'], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04cba8860>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/docadm/doc-ace-adm/1) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-_________________________ test_urlpatterns[url_item22] _________________________
-
-url_item = (<function DocumentoAcessorioAdministrativoEditView at 0x7fc050280598>, 'docadm/doc-ace-adm/edit/%(pk)s/%(ano)s', ['pk', 'ano'], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04c85dcc0>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/docadm/doc-ace-adm/edit/1/1) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-_________________________ test_urlpatterns[url_item23] _________________________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f98ff28>, 'docadm/doc-acessorio/', [], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04c5a42e8>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/docadm/doc-acessorio/) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-_________________________ test_urlpatterns[url_item24] _________________________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc0502800d0>, 'docadm/doc-acessorio/%(pk)s', ['pk'], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04cc5b320>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/docadm/doc-acessorio/1) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-_________________________ test_urlpatterns[url_item25] _________________________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc0502801e0>, 'docadm/doc-acessorio/%(pk)s/delete', ['pk'], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04c474ba8>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/docadm/doc-acessorio/1/delete) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-_________________________ test_urlpatterns[url_item26] _________________________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc050280158>, 'docadm/doc-acessorio/%(pk)s/edit', ['pk'], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04c8bbb00>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/docadm/doc-acessorio/1/edit) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-_________________________ test_urlpatterns[url_item27] _________________________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc050280048>, 'docadm/doc-acessorio/create', [], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04c3ab358>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/docadm/doc-acessorio/create) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-_________________________ test_urlpatterns[url_item28] _________________________
-
-url_item = (<function DetailDocumentoAdministrativo at 0x7fc04f9d99d8>, 'docadm/doc-adm/%(pk)s', ['pk'], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04c63d5f8>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/docadm/doc-adm/1) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-_________________________ test_urlpatterns[url_item29] _________________________
-
-url_item = (<function PesquisarDocumentoAdministrativoView at 0x7fc04fa146a8>, 'docadm/pesq-doc-adm', [], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04c3f2390>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/docadm/pesq-doc-adm) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-_________________________ test_urlpatterns[url_item30] _________________________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc050280268>, 'docadm/tramitacao-doc-adm/%(pk)s/tramitacaoadministrativo', ['pk'], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04cba8710>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/docadm/tramitacao-doc-adm/1/tramitacaoadministrativo) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-_________________________ test_urlpatterns[url_item31] _________________________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc0502802f0>, 'docadm/tramitacao-doc-adm/%(pk)s/tramitacaoadministrativo/create', ['pk'], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04cf870b8>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/docadm/tramitacao-doc-adm/1/tramitacaoadministrativo/create) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-_________________________ test_urlpatterns[url_item32] _________________________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc050280378>, 'docadm/tramitacao-doc-adm/tramitacaoadministrativo/%(pk)s', ['pk'], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04c87c0b8>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/docadm/tramitacao-doc-adm/tramitacaoadministrativo/1) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-_________________________ test_urlpatterns[url_item33] _________________________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc050280488>, 'docadm/tramitacao-doc-adm/tramitacaoadministrativo/%(pk)s/delete', ['pk'], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04cbc4828>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/docadm/tramitacao-doc-adm/tramitacaoadministrativo/1/delete) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-_________________________ test_urlpatterns[url_item34] _________________________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc050280400>, 'docadm/tramitacao-doc-adm/tramitacaoadministrativo/%(pk)s/edit', ['pk'], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04c366cc0>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/docadm/tramitacao-doc-adm/tramitacaoadministrativo/1/edit) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-________________________ test_urlpatterns[url_item435] _________________________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f91e400>, 'sistema/status-tramitacao-adm/', [], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04c60f048>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/sistema/status-tramitacao-adm/) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-________________________ test_urlpatterns[url_item436] _________________________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f91e510>, 'sistema/status-tramitacao-adm/%(pk)s', ['pk'], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04c7ec978>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/sistema/status-tramitacao-adm/1) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-________________________ test_urlpatterns[url_item437] _________________________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f91e620>, 'sistema/status-tramitacao-adm/%(pk)s/delete', ['pk'], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04c5a4828>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/sistema/status-tramitacao-adm/1/delete) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-________________________ test_urlpatterns[url_item438] _________________________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f91e598>, 'sistema/status-tramitacao-adm/%(pk)s/edit', ['pk'], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04cf63ef0>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/sistema/status-tramitacao-adm/1/edit) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-________________________ test_urlpatterns[url_item439] _________________________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f91e488>, 'sistema/status-tramitacao-adm/create', [], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04ccb6470>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/sistema/status-tramitacao-adm/create) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-________________________ test_urlpatterns[url_item440] _________________________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f91e158>, 'sistema/tipo-documento-adm/', [], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04cb18dd8>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/sistema/tipo-documento-adm/) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-________________________ test_urlpatterns[url_item441] _________________________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f91e268>, 'sistema/tipo-documento-adm/%(pk)s', ['pk'], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04c3abdd8>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/sistema/tipo-documento-adm/1) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-________________________ test_urlpatterns[url_item442] _________________________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f91e378>, 'sistema/tipo-documento-adm/%(pk)s/delete', ['pk'], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04cdf3780>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/sistema/tipo-documento-adm/1/delete) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-________________________ test_urlpatterns[url_item443] _________________________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f91e2f0>, 'sistema/tipo-documento-adm/%(pk)s/edit', ['pk'], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04c493b70>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/sistema/tipo-documento-adm/1/edit) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-________________________ test_urlpatterns[url_item444] _________________________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f91e1e0>, 'sistema/tipo-documento-adm/create', [], 'sapl.protocoloadm')
-admin_client = <django.test.client.Client object at 0x7fc04cc0b588>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_urlpatterns(url_item, admin_client):
-    
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        assert '\n' not in url, """
-            A url (%s) da app (%s) está mal formada.
-        """ % (app_name, url)
-    
-        app_name = app_name[5:]
-    
-        assert app_name in apps_url_patterns_prefixs_and_users, """
-            A app (%s) da url (%s) não consta na lista de prefixos do teste
-        """ % (app_name, url)
-    
-        if app_name in apps_url_patterns_prefixs_and_users:
-            prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs']
-    
-            isvalid = False
-            for prefix in prefixs:
-                if url.startswith(prefix):
-                    isvalid = True
-                    break
-    
->           assert isvalid, """
-            O prefixo da url (%s) não está no padrão de sua app (%s).
-            Os prefixos permitidos são:
-            %s
-            """ % (url, app_name, prefixs)
-E           AssertionError: 
-E                     O prefixo da url (/sistema/tipo-documento-adm/create) não está no padrão de sua app (protocoloadm).
-E                     Os prefixos permitidos são:
-E                     ['/protocoloadm', '/docadm/sistema']
-E                     
-E           assert False
-
-sapl/test_urls.py:254: AssertionError
-______________ test_permissions_urls_for_users_by_apps[url_item3] ______________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc05036c620>, 'comissao/%(pk)s/composicao/create', ['pk'], 'sapl.comissoes')
-client = <django.test.client.Client object at 0x7fc04c3d2ac8>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:123: in get_response
-    response = middleware_method(request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/middleware/locale.py:25: in process_request
-    request, check_path=self.is_language_prefix_patterns_used)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/__init__.py:199: in get_language_from_request
-    return _trans.get_language_from_request(request, check_path)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/trans_real.py:494: in get_language_from_request
-    lang_code = request.session.get(LANGUAGE_SESSION_KEY)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:61: in get
-    return self._session.get(key, default)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:201: in _get_session
-    self._session_cache = self.load()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/db.py:33: in load
-    expire_date__gt=timezone.now()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:381: in get
-    num = len(clone)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:240: in __len__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c7fd278>
-sql = 'SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date" FROM "django_session" WHERE ("django_session"."session_key" = %s AND "django_session"."expire_date" > %s)'
-params = ('7bpa3uesppy7ns1gsx9sm5lcsnyo5hn3', datetime.datetime(2016, 10, 11, 14, 15, 15, 423886, tzinfo=<UTC>))
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.InternalError: current transaction is aborted, commands ignored until end of transaction block
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: InternalError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_comissoes': ['/comissao'], 'operador_geral': ['/sistema', '/comissao']} /comissao/1/composicao/create
-______________ test_permissions_urls_for_users_by_apps[url_item4] ______________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc05036c510>, 'comissao/%(pk)s/delete', ['pk'], 'sapl.comissoes')
-client = <django.test.client.Client object at 0x7fc04c6fa048>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c72ae48>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
------------------------------ Captured stdout call -----------------------------
-operador_geral {'operador_comissoes': ['/comissao'], 'operador_geral': ['/sistema', '/comissao']} /comissao/1/delete
-______________ test_permissions_urls_for_users_by_apps[url_item5] ______________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc05036c488>, 'comissao/%(pk)s/edit', ['pk'], 'sapl.comissoes')
-client = <django.test.client.Client object at 0x7fc04cb737b8>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:123: in get_response
-    response = middleware_method(request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/middleware/locale.py:25: in process_request
-    request, check_path=self.is_language_prefix_patterns_used)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/__init__.py:199: in get_language_from_request
-    return _trans.get_language_from_request(request, check_path)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/trans_real.py:494: in get_language_from_request
-    lang_code = request.session.get(LANGUAGE_SESSION_KEY)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:61: in get
-    return self._session.get(key, default)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:201: in _get_session
-    self._session_cache = self.load()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/db.py:33: in load
-    expire_date__gt=timezone.now()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:381: in get
-    num = len(clone)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:240: in __len__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c5aa828>
-sql = 'SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date" FROM "django_session" WHERE ("django_session"."session_key" = %s AND "django_session"."expire_date" > %s)'
-params = ('7jt6whgolvs7ftcx9yzp2xave7o5xvnt', datetime.datetime(2016, 10, 11, 14, 15, 19, 387079, tzinfo=<UTC>))
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.InternalError: current transaction is aborted, commands ignored until end of transaction block
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: InternalError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_comissoes': ['/comissao'], 'operador_geral': ['/sistema', '/comissao']} /comissao/1/edit
-______________ test_permissions_urls_for_users_by_apps[url_item6] ______________
-
-url_item = (<function MateriasTramitacaoListView at 0x7fc05036c048>, 'comissao/%(pk)s/materias-em-tramitacao', ['pk'], 'sapl.comissoes')
-client = <django.test.client.Client object at 0x7fc04c50b1d0>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c8eedd8>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_comissoes': ['/comissao'], 'operador_geral': ['/sistema', '/comissao']} /comissao/1/materias-em-tramitacao
-______________ test_permissions_urls_for_users_by_apps[url_item7] ______________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc05036c840>, 'comissao/%(pk)s/participacao', ['pk'], 'sapl.comissoes')
-client = <django.test.client.Client object at 0x7fc04c45de10>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:123: in get_response
-    response = middleware_method(request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/middleware/locale.py:25: in process_request
-    request, check_path=self.is_language_prefix_patterns_used)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/__init__.py:199: in get_language_from_request
-    return _trans.get_language_from_request(request, check_path)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/trans_real.py:494: in get_language_from_request
-    lang_code = request.session.get(LANGUAGE_SESSION_KEY)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:61: in get
-    return self._session.get(key, default)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:201: in _get_session
-    self._session_cache = self.load()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/db.py:33: in load
-    expire_date__gt=timezone.now()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:381: in get
-    num = len(clone)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:240: in __len__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c938da0>
-sql = 'SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date" FROM "django_session" WHERE ("django_session"."session_key" = %s AND "django_session"."expire_date" > %s)'
-params = ('blz7if1xg2odotvm7i641shbhcp3mxq4', datetime.datetime(2016, 10, 11, 14, 15, 22, 611850, tzinfo=<UTC>))
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.InternalError: current transaction is aborted, commands ignored until end of transaction block
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: InternalError
------------------------------ Captured stdout call -----------------------------
-operador_painel {'operador_comissoes': ['/comissao'], 'operador_geral': ['/sistema', '/comissao']} /comissao/1/participacao
-______________ test_permissions_urls_for_users_by_apps[url_item8] ______________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc05036c8c8>, 'comissao/%(pk)s/participacao/create', ['pk'], 'sapl.comissoes')
-client = <django.test.client.Client object at 0x7fc04c892c88>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:123: in get_response
-    response = middleware_method(request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/middleware/locale.py:25: in process_request
-    request, check_path=self.is_language_prefix_patterns_used)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/__init__.py:199: in get_language_from_request
-    return _trans.get_language_from_request(request, check_path)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/trans_real.py:494: in get_language_from_request
-    lang_code = request.session.get(LANGUAGE_SESSION_KEY)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:61: in get
-    return self._session.get(key, default)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:201: in _get_session
-    self._session_cache = self.load()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/db.py:33: in load
-    expire_date__gt=timezone.now()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:381: in get
-    num = len(clone)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:240: in __len__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c89d320>
-sql = 'SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date" FROM "django_session" WHERE ("django_session"."session_key" = %s AND "django_session"."expire_date" > %s)'
-params = ('l9rjsnqyvvtkqoqjc3mhledk1q9rl7hr', datetime.datetime(2016, 10, 11, 14, 15, 24, 382486, tzinfo=<UTC>))
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.InternalError: current transaction is aborted, commands ignored until end of transaction block
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: InternalError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_comissoes': ['/comissao'], 'operador_geral': ['/sistema', '/comissao']} /comissao/1/participacao/create
-_____________ test_permissions_urls_for_users_by_apps[url_item10] ______________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc05036c7b8>, 'comissao/composicao/%(pk)s/delete', ['pk'], 'sapl.comissoes')
-client = <django.test.client.Client object at 0x7fc04c25c630>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:123: in get_response
-    response = middleware_method(request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/middleware/locale.py:25: in process_request
-    request, check_path=self.is_language_prefix_patterns_used)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/__init__.py:199: in get_language_from_request
-    return _trans.get_language_from_request(request, check_path)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/trans_real.py:494: in get_language_from_request
-    lang_code = request.session.get(LANGUAGE_SESSION_KEY)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:61: in get
-    return self._session.get(key, default)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:201: in _get_session
-    self._session_cache = self.load()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/db.py:33: in load
-    expire_date__gt=timezone.now()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:381: in get
-    num = len(clone)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:240: in __len__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c390f60>
-sql = 'SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date" FROM "django_session" WHERE ("django_session"."session_key" = %s AND "django_session"."expire_date" > %s)'
-params = ('u14b676mus329iqw81o8l3rcqlgnj6q9', datetime.datetime(2016, 10, 11, 14, 15, 27, 591360, tzinfo=<UTC>))
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.InternalError: current transaction is aborted, commands ignored until end of transaction block
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: InternalError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_comissoes': ['/comissao'], 'operador_geral': ['/sistema', '/comissao']} /comissao/composicao/1/delete
-_____________ test_permissions_urls_for_users_by_apps[url_item11] ______________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc05036c730>, 'comissao/composicao/%(pk)s/edit', ['pk'], 'sapl.comissoes')
-client = <django.test.client.Client object at 0x7fc04c5dbc18>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:123: in get_response
-    response = middleware_method(request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/middleware/locale.py:25: in process_request
-    request, check_path=self.is_language_prefix_patterns_used)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/__init__.py:199: in get_language_from_request
-    return _trans.get_language_from_request(request, check_path)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/trans_real.py:494: in get_language_from_request
-    lang_code = request.session.get(LANGUAGE_SESSION_KEY)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:61: in get
-    return self._session.get(key, default)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:201: in _get_session
-    self._session_cache = self.load()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/db.py:33: in load
-    expire_date__gt=timezone.now()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:381: in get
-    num = len(clone)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:240: in __len__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04ca41668>
-sql = 'SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date" FROM "django_session" WHERE ("django_session"."session_key" = %s AND "django_session"."expire_date" > %s)'
-params = ('rq6fh5ia0ac9v4gzdoz1vcv7kabco7wt', datetime.datetime(2016, 10, 11, 14, 15, 29, 342310, tzinfo=<UTC>))
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.InternalError: current transaction is aborted, commands ignored until end of transaction block
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: InternalError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_comissoes': ['/comissao'], 'operador_geral': ['/sistema', '/comissao']} /comissao/composicao/1/edit
-_____________ test_permissions_urls_for_users_by_apps[url_item12] ______________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc05036c378>, 'comissao/create', [], 'sapl.comissoes')
-client = <django.test.client.Client object at 0x7fc04c4e5400>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:123: in get_response
-    response = middleware_method(request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/middleware/locale.py:25: in process_request
-    request, check_path=self.is_language_prefix_patterns_used)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/__init__.py:199: in get_language_from_request
-    return _trans.get_language_from_request(request, check_path)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/trans_real.py:494: in get_language_from_request
-    lang_code = request.session.get(LANGUAGE_SESSION_KEY)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:61: in get
-    return self._session.get(key, default)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:201: in _get_session
-    self._session_cache = self.load()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/db.py:33: in load
-    expire_date__gt=timezone.now()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:381: in get
-    num = len(clone)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:240: in __len__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c7aef28>
-sql = 'SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date" FROM "django_session" WHERE ("django_session"."session_key" = %s AND "django_session"."expire_date" > %s)'
-params = ('p0viey88gte42ifykp8uw4lijujkgryx', datetime.datetime(2016, 10, 11, 14, 15, 31, 253921, tzinfo=<UTC>))
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.InternalError: current transaction is aborted, commands ignored until end of transaction block
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: InternalError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_comissoes': ['/comissao'], 'operador_geral': ['/sistema', '/comissao']} /comissao/create
-_____________ test_permissions_urls_for_users_by_apps[url_item14] ______________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc05036ca60>, 'comissao/participacao/%(pk)s/delete', ['pk'], 'sapl.comissoes')
-client = <django.test.client.Client object at 0x7fc04cc12898>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:123: in get_response
-    response = middleware_method(request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/middleware/locale.py:25: in process_request
-    request, check_path=self.is_language_prefix_patterns_used)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/__init__.py:199: in get_language_from_request
-    return _trans.get_language_from_request(request, check_path)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/trans_real.py:494: in get_language_from_request
-    lang_code = request.session.get(LANGUAGE_SESSION_KEY)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:61: in get
-    return self._session.get(key, default)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:201: in _get_session
-    self._session_cache = self.load()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/db.py:33: in load
-    expire_date__gt=timezone.now()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:381: in get
-    num = len(clone)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:240: in __len__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c8aa4a8>
-sql = 'SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date" FROM "django_session" WHERE ("django_session"."session_key" = %s AND "django_session"."expire_date" > %s)'
-params = ('n1ponlaf0agb3hqg6ie1fj6cy42qkm0y', datetime.datetime(2016, 10, 11, 14, 15, 34, 667815, tzinfo=<UTC>))
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.InternalError: current transaction is aborted, commands ignored until end of transaction block
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: InternalError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_comissoes': ['/comissao'], 'operador_geral': ['/sistema', '/comissao']} /comissao/participacao/1/delete
-_____________ test_permissions_urls_for_users_by_apps[url_item15] ______________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc05036c9d8>, 'comissao/participacao/%(pk)s/edit', ['pk'], 'sapl.comissoes')
-client = <django.test.client.Client object at 0x7fc04c39f278>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:123: in get_response
-    response = middleware_method(request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/middleware/locale.py:25: in process_request
-    request, check_path=self.is_language_prefix_patterns_used)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/__init__.py:199: in get_language_from_request
-    return _trans.get_language_from_request(request, check_path)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/trans_real.py:494: in get_language_from_request
-    lang_code = request.session.get(LANGUAGE_SESSION_KEY)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:61: in get
-    return self._session.get(key, default)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:201: in _get_session
-    self._session_cache = self.load()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/db.py:33: in load
-    expire_date__gt=timezone.now()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:381: in get
-    num = len(clone)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:240: in __len__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c586ef0>
-sql = 'SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date" FROM "django_session" WHERE ("django_session"."session_key" = %s AND "django_session"."expire_date" > %s)'
-params = ('bpl6gfizvrbeymgz036oiuc91hkxq5dk', datetime.datetime(2016, 10, 11, 14, 15, 37, 451057, tzinfo=<UTC>))
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.InternalError: current transaction is aborted, commands ignored until end of transaction block
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: InternalError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_comissoes': ['/comissao'], 'operador_geral': ['/sistema', '/comissao']} /comissao/participacao/1/edit
-_____________ test_permissions_urls_for_users_by_apps[url_item16] ______________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f9d9510>, 'docadm/', [], 'sapl.protocoloadm')
-client = <django.test.client.Client object at 0x7fc04c601550>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:123: in get_response
-    response = middleware_method(request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/middleware/locale.py:25: in process_request
-    request, check_path=self.is_language_prefix_patterns_used)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/__init__.py:199: in get_language_from_request
-    return _trans.get_language_from_request(request, check_path)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/trans_real.py:494: in get_language_from_request
-    lang_code = request.session.get(LANGUAGE_SESSION_KEY)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:61: in get
-    return self._session.get(key, default)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:201: in _get_session
-    self._session_cache = self.load()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/db.py:33: in load
-    expire_date__gt=timezone.now()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:381: in get
-    num = len(clone)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:240: in __len__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c242320>
-sql = 'SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date" FROM "django_session" WHERE ("django_session"."session_key" = %s AND "django_session"."expire_date" > %s)'
-params = ('fz8bb6icn6cdi0wz8wlx3hn1prkgb75v', datetime.datetime(2016, 10, 11, 14, 15, 40, 286646, tzinfo=<UTC>))
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.InternalError: current transaction is aborted, commands ignored until end of transaction block
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: InternalError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_geral': ['/sistema', '/docadm', '/protocoloadm'], 'operador_administrativo': ['/docadm'], 'operador_protocoloadm': ['/protocoloadm']} /docadm/
-_____________ test_permissions_urls_for_users_by_apps[url_item17] ______________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f98fd90>, 'docadm/%(pk)s', ['pk'], 'sapl.protocoloadm')
-client = <django.test.client.Client object at 0x7fc04c760be0>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c6fa9b0>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_geral': ['/sistema', '/docadm', '/protocoloadm'], 'operador_administrativo': ['/docadm'], 'operador_protocoloadm': ['/protocoloadm']} /docadm/1
-_____________ test_permissions_urls_for_users_by_apps[url_item18] ______________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f98fea0>, 'docadm/%(pk)s/delete', ['pk'], 'sapl.protocoloadm')
-client = <django.test.client.Client object at 0x7fc04cfb2ba8>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c3e1160>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_geral': ['/sistema', '/docadm', '/protocoloadm'], 'operador_administrativo': ['/docadm'], 'operador_protocoloadm': ['/protocoloadm']} /docadm/1/delete
-_____________ test_permissions_urls_for_users_by_apps[url_item19] ______________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f98fe18>, 'docadm/%(pk)s/edit', ['pk'], 'sapl.protocoloadm')
-client = <django.test.client.Client object at 0x7fc04c4521d0>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c828cc0>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_geral': ['/sistema', '/docadm', '/protocoloadm'], 'operador_administrativo': ['/docadm'], 'operador_protocoloadm': ['/protocoloadm']} /docadm/1/edit
-_____________ test_permissions_urls_for_users_by_apps[url_item20] ______________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f9d97b8>, 'docadm/create', [], 'sapl.protocoloadm')
-client = <django.test.client.Client object at 0x7fc04c48fdd8>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:123: in get_response
-    response = middleware_method(request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/middleware/locale.py:25: in process_request
-    request, check_path=self.is_language_prefix_patterns_used)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/__init__.py:199: in get_language_from_request
-    return _trans.get_language_from_request(request, check_path)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/trans_real.py:494: in get_language_from_request
-    lang_code = request.session.get(LANGUAGE_SESSION_KEY)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:61: in get
-    return self._session.get(key, default)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:201: in _get_session
-    self._session_cache = self.load()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/db.py:33: in load
-    expire_date__gt=timezone.now()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:381: in get
-    num = len(clone)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:240: in __len__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c5624a8>
-sql = 'SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date" FROM "django_session" WHERE ("django_session"."session_key" = %s AND "django_session"."expire_date" > %s)'
-params = ('jlcqaw2862k14g7peuhvw4jdiikkqlwj', datetime.datetime(2016, 10, 11, 14, 15, 48, 562375, tzinfo=<UTC>))
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.InternalError: current transaction is aborted, commands ignored until end of transaction block
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: InternalError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_geral': ['/sistema', '/docadm', '/protocoloadm'], 'operador_administrativo': ['/docadm'], 'operador_protocoloadm': ['/protocoloadm']} /docadm/create
-_____________ test_permissions_urls_for_users_by_apps[url_item21] ______________
-
-url_item = (<function DocumentoAcessorioAdministrativoView at 0x7fc050280510>, 'docadm/doc-ace-adm/%(pk)s', ['pk'], 'sapl.protocoloadm')
-client = <django.test.client.Client object at 0x7fc04c2e3a90>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:123: in get_response
-    response = middleware_method(request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/middleware/locale.py:25: in process_request
-    request, check_path=self.is_language_prefix_patterns_used)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/__init__.py:199: in get_language_from_request
-    return _trans.get_language_from_request(request, check_path)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/trans_real.py:494: in get_language_from_request
-    lang_code = request.session.get(LANGUAGE_SESSION_KEY)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:61: in get
-    return self._session.get(key, default)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:201: in _get_session
-    self._session_cache = self.load()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/db.py:33: in load
-    expire_date__gt=timezone.now()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:381: in get
-    num = len(clone)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:240: in __len__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c35e080>
-sql = 'SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date" FROM "django_session" WHERE ("django_session"."session_key" = %s AND "django_session"."expire_date" > %s)'
-params = ('68us1rdd3hs8t1a7jxfl2ujqzl2h5zq1', datetime.datetime(2016, 10, 11, 14, 15, 50, 180925, tzinfo=<UTC>))
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.InternalError: current transaction is aborted, commands ignored until end of transaction block
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: InternalError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_geral': ['/sistema', '/docadm', '/protocoloadm'], 'operador_administrativo': ['/docadm'], 'operador_protocoloadm': ['/protocoloadm']} /docadm/doc-ace-adm/1
-_____________ test_permissions_urls_for_users_by_apps[url_item22] ______________
-
-url_item = (<function DocumentoAcessorioAdministrativoEditView at 0x7fc050280598>, 'docadm/doc-ace-adm/edit/%(pk)s/%(ano)s', ['pk', 'ano'], 'sapl.protocoloadm')
-client = <django.test.client.Client object at 0x7fc04c497d68>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04cf06470>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_geral': ['/sistema', '/docadm', '/protocoloadm'], 'operador_administrativo': ['/docadm'], 'operador_protocoloadm': ['/protocoloadm']} /docadm/doc-ace-adm/edit/1/1
-_____________ test_permissions_urls_for_users_by_apps[url_item23] ______________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc04f98ff28>, 'docadm/doc-acessorio/', [], 'sapl.protocoloadm')
-client = <django.test.client.Client object at 0x7fc04ca41780>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:123: in get_response
-    response = middleware_method(request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/middleware/locale.py:25: in process_request
-    request, check_path=self.is_language_prefix_patterns_used)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/__init__.py:199: in get_language_from_request
-    return _trans.get_language_from_request(request, check_path)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/trans_real.py:494: in get_language_from_request
-    lang_code = request.session.get(LANGUAGE_SESSION_KEY)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:61: in get
-    return self._session.get(key, default)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:201: in _get_session
-    self._session_cache = self.load()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/db.py:33: in load
-    expire_date__gt=timezone.now()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:381: in get
-    num = len(clone)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:240: in __len__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c27d128>
-sql = 'SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date" FROM "django_session" WHERE ("django_session"."session_key" = %s AND "django_session"."expire_date" > %s)'
-params = ('3khibaw474loj6q1g2j5j97gwkms2pza', datetime.datetime(2016, 10, 11, 14, 15, 54, 101230, tzinfo=<UTC>))
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.InternalError: current transaction is aborted, commands ignored until end of transaction block
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: InternalError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_geral': ['/sistema', '/docadm', '/protocoloadm'], 'operador_administrativo': ['/docadm'], 'operador_protocoloadm': ['/protocoloadm']} /docadm/doc-acessorio/
-_____________ test_permissions_urls_for_users_by_apps[url_item24] ______________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc0502800d0>, 'docadm/doc-acessorio/%(pk)s', ['pk'], 'sapl.protocoloadm')
-client = <django.test.client.Client object at 0x7fc04c3c8518>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c130908>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_geral': ['/sistema', '/docadm', '/protocoloadm'], 'operador_administrativo': ['/docadm'], 'operador_protocoloadm': ['/protocoloadm']} /docadm/doc-acessorio/1
-_____________ test_permissions_urls_for_users_by_apps[url_item25] ______________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc0502801e0>, 'docadm/doc-acessorio/%(pk)s/delete', ['pk'], 'sapl.protocoloadm')
-client = <django.test.client.Client object at 0x7fc04c6f8c18>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c901390>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_geral': ['/sistema', '/docadm', '/protocoloadm'], 'operador_administrativo': ['/docadm'], 'operador_protocoloadm': ['/protocoloadm']} /docadm/doc-acessorio/1/delete
-_____________ test_permissions_urls_for_users_by_apps[url_item26] ______________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc050280158>, 'docadm/doc-acessorio/%(pk)s/edit', ['pk'], 'sapl.protocoloadm')
-client = <django.test.client.Client object at 0x7fc04d03b908>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04cc45240>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_geral': ['/sistema', '/docadm', '/protocoloadm'], 'operador_administrativo': ['/docadm'], 'operador_protocoloadm': ['/protocoloadm']} /docadm/doc-acessorio/1/edit
-_____________ test_permissions_urls_for_users_by_apps[url_item27] ______________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc050280048>, 'docadm/doc-acessorio/create', [], 'sapl.protocoloadm')
-client = <django.test.client.Client object at 0x7fc04c87c240>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:123: in get_response
-    response = middleware_method(request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/middleware/locale.py:25: in process_request
-    request, check_path=self.is_language_prefix_patterns_used)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/__init__.py:199: in get_language_from_request
-    return _trans.get_language_from_request(request, check_path)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/trans_real.py:494: in get_language_from_request
-    lang_code = request.session.get(LANGUAGE_SESSION_KEY)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:61: in get
-    return self._session.get(key, default)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:201: in _get_session
-    self._session_cache = self.load()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/db.py:33: in load
-    expire_date__gt=timezone.now()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:381: in get
-    num = len(clone)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:240: in __len__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c718518>
-sql = 'SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date" FROM "django_session" WHERE ("django_session"."session_key" = %s AND "django_session"."expire_date" > %s)'
-params = ('xhve3xe2zi66umdru23jg4ycic21mz5v', datetime.datetime(2016, 10, 11, 14, 16, 4, 514192, tzinfo=<UTC>))
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.InternalError: current transaction is aborted, commands ignored until end of transaction block
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: InternalError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_geral': ['/sistema', '/docadm', '/protocoloadm'], 'operador_administrativo': ['/docadm'], 'operador_protocoloadm': ['/protocoloadm']} /docadm/doc-acessorio/create
-_____________ test_permissions_urls_for_users_by_apps[url_item28] ______________
-
-url_item = (<function DetailDocumentoAdministrativo at 0x7fc04f9d99d8>, 'docadm/doc-adm/%(pk)s', ['pk'], 'sapl.protocoloadm')
-client = <django.test.client.Client object at 0x7fc04c5a8908>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c765eb8>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_geral': ['/sistema', '/docadm', '/protocoloadm'], 'operador_administrativo': ['/docadm'], 'operador_protocoloadm': ['/protocoloadm']} /docadm/doc-adm/1
-_____________ test_permissions_urls_for_users_by_apps[url_item29] ______________
-
-url_item = (<function PesquisarDocumentoAdministrativoView at 0x7fc04fa146a8>, 'docadm/pesq-doc-adm', [], 'sapl.protocoloadm')
-client = <django.test.client.Client object at 0x7fc04c4cccc0>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:123: in get_response
-    response = middleware_method(request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/middleware/locale.py:25: in process_request
-    request, check_path=self.is_language_prefix_patterns_used)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/__init__.py:199: in get_language_from_request
-    return _trans.get_language_from_request(request, check_path)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/trans_real.py:494: in get_language_from_request
-    lang_code = request.session.get(LANGUAGE_SESSION_KEY)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:61: in get
-    return self._session.get(key, default)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:201: in _get_session
-    self._session_cache = self.load()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/db.py:33: in load
-    expire_date__gt=timezone.now()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:381: in get
-    num = len(clone)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:240: in __len__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c82af60>
-sql = 'SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date" FROM "django_session" WHERE ("django_session"."session_key" = %s AND "django_session"."expire_date" > %s)'
-params = ('zi3fqs79ieqmx1tcvf7te0h5l8tgwvz3', datetime.datetime(2016, 10, 11, 14, 16, 8, 167065, tzinfo=<UTC>))
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.InternalError: current transaction is aborted, commands ignored until end of transaction block
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: InternalError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_geral': ['/sistema', '/docadm', '/protocoloadm'], 'operador_administrativo': ['/docadm'], 'operador_protocoloadm': ['/protocoloadm']} /docadm/pesq-doc-adm
-_____________ test_permissions_urls_for_users_by_apps[url_item30] ______________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc050280268>, 'docadm/tramitacao-doc-adm/%(pk)s/tramitacaoadministrativo', ['pk'], 'sapl.protocoloadm')
-client = <django.test.client.Client object at 0x7fc04c4114e0>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c1627b8>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_geral': ['/sistema', '/docadm', '/protocoloadm'], 'operador_administrativo': ['/docadm'], 'operador_protocoloadm': ['/protocoloadm']} /docadm/tramitacao-doc-adm/1/tramitacaoadministrativo
-_____________ test_permissions_urls_for_users_by_apps[url_item31] ______________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc0502802f0>, 'docadm/tramitacao-doc-adm/%(pk)s/tramitacaoadministrativo/create', ['pk'], 'sapl.protocoloadm')
-client = <django.test.client.Client object at 0x7fc04c06b3c8>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c3767f0>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_geral': ['/sistema', '/docadm', '/protocoloadm'], 'operador_administrativo': ['/docadm'], 'operador_protocoloadm': ['/protocoloadm']} /docadm/tramitacao-doc-adm/1/tramitacaoadministrativo/create
-_____________ test_permissions_urls_for_users_by_apps[url_item32] ______________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc050280378>, 'docadm/tramitacao-doc-adm/tramitacaoadministrativo/%(pk)s', ['pk'], 'sapl.protocoloadm')
-client = <django.test.client.Client object at 0x7fc04c270940>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc047f02208>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_geral': ['/sistema', '/docadm', '/protocoloadm'], 'operador_administrativo': ['/docadm'], 'operador_protocoloadm': ['/protocoloadm']} /docadm/tramitacao-doc-adm/tramitacaoadministrativo/1
-_____________ test_permissions_urls_for_users_by_apps[url_item33] ______________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc050280488>, 'docadm/tramitacao-doc-adm/tramitacaoadministrativo/%(pk)s/delete', ['pk'], 'sapl.protocoloadm')
-client = <django.test.client.Client object at 0x7fc04c825518>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c8bb7f0>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_geral': ['/sistema', '/docadm', '/protocoloadm'], 'operador_administrativo': ['/docadm'], 'operador_protocoloadm': ['/protocoloadm']} /docadm/tramitacao-doc-adm/tramitacaoadministrativo/1/delete
-_____________ test_permissions_urls_for_users_by_apps[url_item34] ______________
-
-url_item = (<function Crud.get_urls.<locals>._add_base.<locals>.CrudViewWithBase at 0x7fc050280400>, 'docadm/tramitacao-doc-adm/tramitacaoadministrativo/%(pk)s/edit', ['pk'], 'sapl.protocoloadm')
-client = <django.test.client.Client object at 0x7fc04c55e390>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:206: in render
-    return self._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:173: in render
-    return compiled_parent._render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/utils.py:92: in instrumented_test_render
-    return self.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/loader_tags.py:69: in render
-    result = block.nodelist.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:992: in render
-    bit = node.render_annotated(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:959: in render_annotated
-    return self.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:319: in render
-    match = condition.eval(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/defaulttags.py:951: in eval
-    return self.value.resolve(context, ignore_failures=True)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:736: in resolve
-    new_obj = func(obj, *arg_vals)
-sapl/base/templatetags/common_tags.py:92: in get_doc_adm_template_perms
-    app_config = AppConfig.objects.last()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:559: in last
-    objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c360a20>
-sql = 'SELECT "base_appconfig"."id", "base_appconfig"."documentos_administrativos", "base_appconfig"."sequencia_numeracao", ..._materia", "base_appconfig"."texto_articulado_norma" FROM "base_appconfig" ORDER BY "base_appconfig"."id" DESC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.ProgrammingError: column base_appconfig.texto_articulado_proposicao does not exist
-E               LINE 1: ...cia_numeracao", "base_appconfig"."painel_aberto", "base_appc...
-E                                                                            ^
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: ProgrammingError
------------------------------ Captured stdout call -----------------------------
-operador_geral {'operador_geral': ['/sistema', '/docadm', '/protocoloadm'], 'operador_administrativo': ['/docadm'], 'operador_protocoloadm': ['/protocoloadm']} /docadm/tramitacao-doc-adm/tramitacaoadministrativo/1/edit
-_____________ test_permissions_urls_for_users_by_apps[url_item35] ______________
-
-url_item = (<function login at 0x7fc0504bfea0>, 'login/', [], 'sapl.base')
-client = <django.test.client.Client object at 0x7fc04c1d1b38>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:123: in get_response
-    response = middleware_method(request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/middleware/locale.py:25: in process_request
-    request, check_path=self.is_language_prefix_patterns_used)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/__init__.py:199: in get_language_from_request
-    return _trans.get_language_from_request(request, check_path)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/trans_real.py:494: in get_language_from_request
-    lang_code = request.session.get(LANGUAGE_SESSION_KEY)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:61: in get
-    return self._session.get(key, default)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:201: in _get_session
-    self._session_cache = self.load()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/db.py:33: in load
-    expire_date__gt=timezone.now()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:381: in get
-    num = len(clone)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:240: in __len__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c3a0898>
-sql = 'SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date" FROM "django_session" WHERE ("django_session"."session_key" = %s AND "django_session"."expire_date" > %s)'
-params = ('c1uywktes83r58cl8d3wl7q9t8slb8ic', datetime.datetime(2016, 10, 11, 14, 16, 19, 138164, tzinfo=<UTC>))
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.InternalError: current transaction is aborted, commands ignored until end of transaction block
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: InternalError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_geral': ['/sistema']} /login/
-_____________ test_permissions_urls_for_users_by_apps[url_item36] ______________
-
-url_item = (<function logout at 0x7fc0504cb268>, 'logout/', [], 'sapl.base')
-client = <django.test.client.Client object at 0x7fc047f29a90>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:505: in get
-    response = self._handle_redirects(response, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:686: in _handle_redirects
-    response = self.get(path, QueryDict(url.query), follow=False, **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:174: in get_response
-    response = self.process_exception_by_middleware(e, request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:172: in get_response
-    response = response.render()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:160: in render
-    self.content = self.rendered_content
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/response.py:137: in rendered_content
-    content = template.render(context, self._request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/backends/django.py:95: in render
-    return self.template.render(context)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/template/base.py:204: in render
-    with context.bind_template(self):
-/usr/lib/python3.4/contextlib.py:59: in __enter__
-    return next(self.gen)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/debug_toolbar/panels/templates/panel.py:49: in _request_context_bind_template
-    context = processor(self.request)
-sapl/context_processors.py:7: in parliament_info
-    casa = get_casalegislativa()
-sapl/base/views.py:26: in get_casalegislativa
-    return CasaLegislativa.objects.first()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:550: in first
-    objects = list((self if self.ordered else self.order_by('pk'))[:1])
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:258: in __iter__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c291780>
-sql = 'SELECT "base_casalegislativa"."id", "base_casalegislativa"."codigo", "base_casalegislativa"."nome", "base_casalegisla..."base_casalegislativa"."informacao_geral" FROM "base_casalegislativa" ORDER BY "base_casalegislativa"."id" ASC LIMIT 1'
-params = ()
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.InternalError: current transaction is aborted, commands ignored until end of transaction block
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: InternalError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_geral': ['/sistema']} /logout/
-_____________ test_permissions_urls_for_users_by_apps[url_item39] ______________
-
-url_item = (<function AcompanhamentoConfirmarView at 0x7fc05028b8c8>, 'materia/%(pk)s/acompanhar-confirmar', ['pk'], 'sapl.materia')
-client = <django.test.client.Client object at 0x7fc04c791cc0>
-
-    @pytest.mark.parametrize('url_item', _lista_urls)
-    def test_permissions_urls_for_users_by_apps(url_item, client):
-        key, url, var, app_name = url_item
-        url = '/' + (url % {v: 1 for v in var})
-    
-        if not get_user_model().objects.exists():
-            for app in sapl_appconfs:
-                # readequa permissões dos models adicionando
-                # list e detail permissions
-                create_perms_post_migrate(app)
-            # cria usuários de perfil do sapl
-            cria_grupos_permissoes()
-        users = get_user_model().objects.values_list('username', flat=True)
-    
-        app_labels = app_name.split('.')[1]
-    
-        view = None
-        if hasattr(key, 'view_class'):
-            view = key.view_class()
-    
-            """
-            A classe PermissionRequiredForAppCrudMixin pode ser usada em uma
-            app mas envolver permissoes para outras
-            como é o caso de PainelView que está na app 'sessao'
-            mas é um redirecionamento para 'painel'... aqui é feita
-            a troca da app a ser testada, por essas outras possíveis.
-    
-            Este, até a ultima versão deste teste é o único tipo de view que
-                possui restrição restrição simples, por permissão, e não por
-                container, como é o caso de proposições que possui restrição
-                por usuário e não só por, ou não tem, o campo permission_required
-            """
-            if PermissionRequiredForAppCrudMixin in type.mro(key.view_class):
-                # essa classe deve informar app_label
-                assert hasattr(key.view_class, 'app_label')
-                # app_label deve ter conteudo
-                assert key.view_class.app_label
-                app_labels = key.view_class.app_label
-            else:
-    
-                if hasattr(view, 'permission_required') and \
-                        view.permission_required is not None and\
-                        len(view.permission_required) == 0:
-                    """
-                    condição do Crud, se tem permission_required e ele é igual [],
-                    então é uma view pública, teste liberado.
-                    """
-                    return
-                else:
-                    """
-                    Views que não se encaixam nãs condições acima, podem possuir
-                    ou não restrição de acesso. Se o código continuar,
-                    será tratado como tentativa de validar pois é possível
-                    ter restrição local, como uma anotação method_required.
-                    Caberá ao desenvolvedor de uma nova view, se for pública e
-                    sem necessidade de nenhum tratamento de permissão, para limpar
-                    o teste to py.test adicionar sua url
-                    representativa na variavel externa ao teste:
-    
-                        urls_publicas_excecoes, logo acima do teste
-                    """
-                    pass
-    
-        if isinstance(app_labels, str):
-            app_labels = app_labels,
-    
-        for app in app_labels:
-    
-            assert app in apps_url_patterns_prefixs_and_users, """
-                O app_label (%s) associado a url (%s) não está na base de testes.
-                %s
-                """ % (app_name, url)
-    
-            if 'users' not in apps_url_patterns_prefixs_and_users[app]:
-                continue
-    
-            users_for_url_atual_app = apps_url_patterns_prefixs_and_users[
-                app]['users']
-    
-            for username in users:
-                print(username, users_for_url_atual_app, url)
-    
-                client.login(username=username, password='interlegis')
-    
-                rg = None
-                try:
-                    if url not in urls_publicas_excecoes['get']:
-                        rg = client.get(url, {}, follow=True)
-                except:
-                    pass
-    
-                rp = None
-                try:
-                    if url not in urls_publicas_excecoes['post']:
-                        rp = client.post(url, {}, follow=True)
-                except:
-                    pass
-    
-                """
-                devido às urls serem incompletas ou com pks e outras valores
-                inexistentes na base, iniciar a execução da view, seja por get,
-                post ou qualquer outro método pode causar o erro...
-                por isso o "try ... except" acima.
-                No entanto, o objetivo do teste é validar o acesso de toda url.
-                Independente do erro que vá acontecer, esse erro não ocorrerá
-                se o user não tiver permissão de acesso pelo fato de que "AS
-                VIEWS BEM FORMADAS PARA VALIDAÇÃO DE ACESSO DEVEM SEMPRE
-                REDIRECIONAR PARA
-                LOGIN ANTES DE SUA EXECUÇÃO", desta forma nunca gerando erro
-                interno dada qualquer incoerência de parâmetros nas urls
-                """
-    
-                for _type, content in (
-                        ('get', str(rg.content if rg else '')),
-                        ('post', str(rp.content if rp else ''))):
-    
-                    if not content:
-                        continue
-    
-                    def _assert_login(_in):
-                        if _in:
-                            assert btn_login in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) deveria ser redirecionado
-                                para tela de login.
-                                """ % (_type, url, app, username)
-                        else:
-                            assert btn_login not in content, """
-                                No teste de requisição "%s" a url (%s).
-                                App (%s)
-                                O usuário (%s) não deveria ser redirecionado
-                                para tela de login. Se essa é uma url
-                                invariavelmente pública, a adicione na variavel
-                                abaixo localizada no arquivo que se encontra este
-                                teste:
-    
-                                    urls_publicas_excecoes
-    
-    
-                                """ % (_type, url, app, username)
-    
-                    if username not in users_for_url_atual_app:
-                        # se não é usuário da app deve ser redirecionado para login
-                        _assert_login(True)
-                    else:
-                        prefixs = users_for_url_atual_app[username]
-                        for pr in prefixs:
-                            if url.startswith(pr):
-                                _assert_login(False)
-                                break
-    
->               client.get('/logout/', follow=True)
-
-sapl/test_urls.py:473: 
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:503: in get
-    **extra)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:304: in get
-    return self.generic('GET', path, secure=secure, **r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:380: in generic
-    return self.request(**r)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/test/client.py:467: in request
-    six.reraise(*exc_info)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:686: in reraise
-    raise value
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/core/handlers/base.py:123: in get_response
-    response = middleware_method(request)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/middleware/locale.py:25: in process_request
-    request, check_path=self.is_language_prefix_patterns_used)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/__init__.py:199: in get_language_from_request
-    return _trans.get_language_from_request(request, check_path)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/translation/trans_real.py:494: in get_language_from_request
-    lang_code = request.session.get(LANGUAGE_SESSION_KEY)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:61: in get
-    return self._session.get(key, default)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/base.py:201: in _get_session
-    self._session_cache = self.load()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/contrib/sessions/backends/db.py:33: in load
-    expire_date__gt=timezone.now()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/manager.py:122: in manager_method
-    return getattr(self.get_queryset(), name)(*args, **kwargs)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:381: in get
-    num = len(clone)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:240: in __len__
-    self._fetch_all()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:1074: in _fetch_all
-    self._result_cache = list(self.iterator())
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/query.py:52: in __iter__
-    results = compiler.execute_sql()
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/models/sql/compiler.py:848: in execute_sql
-    cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: in execute
-    return self.cursor.execute(sql, params)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/utils.py:95: in __exit__
-    six.reraise(dj_exc_type, dj_exc_value, traceback)
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/utils/six.py:685: in reraise
-    raise value.with_traceback(tb)
-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
-
-self = <django.db.backends.utils.CursorWrapper object at 0x7fc04c579438>
-sql = 'SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date" FROM "django_session" WHERE ("django_session"."session_key" = %s AND "django_session"."expire_date" > %s)'
-params = ('uvoajg1ljw8wo30glsjnaridxyjxvv92', datetime.datetime(2016, 10, 11, 14, 16, 24, 515850, tzinfo=<UTC>))
-
-    def execute(self, sql, params=None):
-        self.db.validate_no_broken_transaction()
-        with self.db.wrap_database_errors:
-            if params is None:
-                return self.cursor.execute(sql)
-            else:
->               return self.cursor.execute(sql, params)
-E               django.db.utils.InternalError: current transaction is aborted, commands ignored until end of transaction block
-
-../../.virtualenvs/sapl/lib/python3.4/site-packages/django/db/backends/utils.py:64: InternalError
------------------------------ Captured stdout call -----------------------------
-operador_administrativo {'operador_autor': ['/proposicao'], 'operador_geral': ['/sistema', '/materia'], 'operador_materia': ['/materia']} /materia/1/acompanhar-confirmar
-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! KeyboardInterrupt !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-to show a full traceback on KeyboardInterrupt use --fulltrace
-/usr/lib/python3.4/ast.py:172: KeyboardInterrupt
-========= 100 failed, 1449 passed, 1 pytest-warnings in 159.31 seconds =========
