Ejemplo n.º 1
0
    def setUp(self):
        self.portal = self.layer['portal']
        self.request = self.portal.REQUEST
        pp = api.portal.get_tool('portal_properties')
        self.barra_helper = api.content.get_view(
            name='barra_helper',
            context=self.portal,
            request=self.request,
        )
        self.sheet = getattr(pp, 'brasil_gov', None)

        self.barra_viewlet_js = BarraViewletJs(self.portal, self.request, None,
                                               None)

        # Como nao eh um teste funcional, este objeto
        # REQUEST precisa ser anotado com o browser layer
        alsoProvides(self.portal.REQUEST, IBarraInstalada)
Ejemplo n.º 2
0
    def setUp(self):
        self.portal = self.layer['portal']
        self.request = self.portal.REQUEST
        pp = api.portal.get_tool('portal_properties')
        self.barra_helper = api.content.get_view(
            name='barra_helper',
            context=self.portal,
            request=self.request,
        )
        self.sheet = getattr(pp, 'brasil_gov', None)

        self.barra_viewlet_js = BarraViewletJs(self.portal, self.request, None,
                                               None)

        # Setup site language settings
        ltool = self.portal.portal_languages
        defaultLanguage = BARRA_JS_DEFAULT_LANGUAGE
        supportedLanguages = [BARRA_JS_DEFAULT_LANGUAGE, 'en', 'es', 'fr']
        ltool.manage_setLanguageSettings(defaultLanguage,
                                         supportedLanguages,
                                         setUseCombinedLanguageCodes=False)
        self.ltool = ltool
        self.ltool.setLanguageBindings()
Ejemplo n.º 3
0
    def setUp(self):
        self.portal = self.layer['portal']
        self.request = self.portal.REQUEST
        pp = api.portal.get_tool('portal_properties')
        self.barra_helper = api.content.get_view(
            name='barra_helper',
            context=self.portal,
            request=self.request,
        )
        self.sheet = getattr(pp, 'brasil_gov', None)

        self.barra_viewlet_js = BarraViewletJs(
            self.portal,
            self.request,
            None,
            None
        )

        # Como nao eh um teste funcional, este objeto
        # REQUEST precisa ser anotado com o browser layer
        alsoProvides(self.portal.REQUEST, IBarraInstalada)
Ejemplo n.º 4
0
    def setUp(self):
        self.portal = self.layer['portal']
        self.request = self.portal.REQUEST
        pp = api.portal.get_tool('portal_properties')
        self.barra_helper = api.content.get_view(
            name='barra_helper',
            context=self.portal,
            request=self.request,
        )
        self.sheet = getattr(pp, 'brasil_gov', None)

        self.barra_viewlet_js = BarraViewletJs(
            self.portal, self.request, None, None)

        # Setup site language settings
        ltool = self.portal.portal_languages
        defaultLanguage = BARRA_JS_DEFAULT_LANGUAGE
        supportedLanguages = [BARRA_JS_DEFAULT_LANGUAGE, 'en', 'es', 'fr']
        ltool.manage_setLanguageSettings(defaultLanguage, supportedLanguages,
                                         setUseCombinedLanguageCodes=False)
        self.ltool = ltool
        self.ltool.setLanguageBindings()
Ejemplo n.º 5
0
class HelperViewTest(unittest.TestCase):
    """ Caso de teste da Browser View BarraHelper"""
    layer = INTEGRATION_TESTING

    def setUp(self):
        self.portal = self.layer['portal']
        self.request = self.portal.REQUEST
        pp = api.portal.get_tool('portal_properties')
        self.barra_helper = api.content.get_view(
            name='barra_helper',
            context=self.portal,
            request=self.request,
        )
        self.sheet = getattr(pp, 'brasil_gov', None)

        self.barra_viewlet_js = BarraViewletJs(self.portal, self.request, None,
                                               None)

        # Como nao eh um teste funcional, este objeto
        # REQUEST precisa ser anotado com o browser layer
        alsoProvides(self.portal.REQUEST, IBarraInstalada)

    def test_helper_view_registration(self):
        """ Validamos se BarraHelper esta registrada"""
        view = self.barra_helper.__of__(self.portal)
        self.assertTrue(view)

    def test_helper_view_local(self):
        """Uso do metodo local"""
        # Validamos que ela retorne o valor padrao para
        # o metodo remoto(configurado em profiles/default/propertiestool.xml)
        self.assertFalse(self.barra_helper.local())
        # Alteramos o valor para hospedagem para local
        self.sheet.local = True
        # O resultado da consulta a Browser View deve se adequar
        self.assertTrue(self.barra_helper.local())

    def test_helper_false_mostra_barra_remota(self):
        """
        Não marcando a opção 'local', deve mostrar barra externa e não deve
        aparecer barra interna.
        """
        self.barra_viewlet_js.update()
        self.assertFalse(BARRA_LOCAL_HTML in self.barra_viewlet_js.render())
        self.assertTrue(BARRA_EXTERNA_HTML in self.barra_viewlet_js.render())

    def test_helper_true_mostra_barra_local(self):
        """
        Marcando opção local, deve mostrar barra local e não deve aparecer
        barra externa.
        """
        self.sheet.local = True
        self.barra_viewlet_js.update()
        self.assertTrue(BARRA_LOCAL_HTML in self.barra_viewlet_js.render())
        self.assertFalse(BARRA_EXTERNA_HTML in self.barra_viewlet_js.render())

    def test_js_external_mesma_versao_static(self):
        """
        Baixa a última versão da barra diretamente do servidor do ministério
        do planejamento para ver se a versão da nossa pasta static é a mesma.

        Se não for, avisa no teste e já indica o que tem de ser feito para
        corrigir.
        """
        prevent_cache_random_string = str(time()).split('.')[0]
        url = '{0}?v={1}'.format(BARRA_JS_URL, prevent_cache_random_string)
        barra_js_tmp_location = '/tmp/{0}'.format(BARRA_JS_FILE)
        request = urllib2.Request(
            url, headers={'Accept-Language': BARRA_JS_DEFAULT_LANGUAGE})

        barra_js = urllib2.urlopen(request)

        with open(barra_js_tmp_location, 'wb') as output:
            output.write(barra_js.read())

        iguais = cmp(barra_js_tmp_location, BARRA_JS_STATIC_FILE_LOCATION)

        # Caso esse teste falhe, rode o comando
        # wget --header="Accept-Language: {0}" http://barra.brasil.gov.br/barra.js?v=$RANDOM && mv barra.js\?v=* barra.js
        # em seu terminal para pegar a última versão da barra para poder fazer
        # o teste passar.
        self.assertTrue(iguais)
Ejemplo n.º 6
0
class HelperViewTest(unittest.TestCase):
    """ Caso de teste da Browser View BarraHelper"""

    layer = INTEGRATION_TESTING

    def setUp(self):
        self.portal = self.layer['portal']
        self.request = self.portal.REQUEST
        pp = api.portal.get_tool('portal_properties')
        self.barra_helper = api.content.get_view(
            name='barra_helper',
            context=self.portal,
            request=self.request,
        )
        self.sheet = getattr(pp, 'brasil_gov', None)

        self.barra_viewlet_js = BarraViewletJs(self.portal, self.request, None,
                                               None)

        # Setup site language settings
        ltool = self.portal.portal_languages
        defaultLanguage = BARRA_JS_DEFAULT_LANGUAGE
        supportedLanguages = [BARRA_JS_DEFAULT_LANGUAGE, 'en', 'es', 'fr']
        ltool.manage_setLanguageSettings(defaultLanguage,
                                         supportedLanguages,
                                         setUseCombinedLanguageCodes=False)
        self.ltool = ltool
        self.ltool.setLanguageBindings()

    def test_helper_view_registration(self):
        """ Validamos se BarraHelper esta registrada"""
        view = self.barra_helper.__of__(self.portal)
        self.assertTrue(view)

    def test_helper_view_local(self):
        """Uso do metodo local"""
        # Validamos que ela retorne o valor padrao para
        # o metodo remoto(configurado em profiles/default/propertiestool.xml)
        self.assertFalse(self.barra_helper.local())
        # Alteramos o valor para hospedagem para local
        self.sheet.local = True
        # O resultado da consulta a Browser View deve se adequar
        self.assertTrue(self.barra_helper.local())

    def test_helper_false_mostra_barra_remota(self):
        """
        Não marcando a opção 'local', deve mostrar barra externa e não deve
        aparecer barra interna.
        """
        self.barra_viewlet_js.update()
        self.assertNotIn(BARRA_LOCAL_HTML, self.barra_viewlet_js.render())
        self.assertIn(BARRA_EXTERNA_HTML, self.barra_viewlet_js.render())

    def test_helper_true_mostra_barra_local(self):
        """
        Marcando opção local, deve mostrar barra local e não deve aparecer
        barra externa.
        """
        self.sheet.local = True
        self.barra_viewlet_js.update()
        self.assertIn(BARRA_LOCAL_HTML, self.barra_viewlet_js.render())
        self.assertNotIn(BARRA_EXTERNA_HTML, self.barra_viewlet_js.render())

    @staticmethod
    def get_version(code):
        return code[code.find('@version'):code.find(' @source')]

    def test_js_external_mesma_versao_static(self):
        """
        Baixa a última versão da barra diretamente do servidor do ministério
        do planejamento para ver se a versão da nossa pasta static é a mesma.

        Se não for, avisa no teste e já indica o que tem de ser feito para
        corrigir.
        """
        from filecmp import cmp
        import requests

        barra_js_tmp_location = '/tmp/{0}'.format(BARRA_JS_FILE)  # nosec
        headers = {
            'Accept-Language': BARRA_JS_DEFAULT_LANGUAGE,
            'Cache-Control': 'no-cache',
        }
        r = requests.get(BARRA_JS_URL, headers=headers)
        code = r.text.encode('utf-8')

        with open(barra_js_tmp_location, 'wb') as output:
            output.write(code)

        iguais = cmp(barra_js_tmp_location, BARRA_JS_STATIC_FILE_LOCATION)

        msg = ('O código da barra foi atualizado ({0}); '
               'rode o buildout para atualizar a cópia local')
        self.assertTrue(iguais, msg.format(self.get_version(code)))
Ejemplo n.º 7
0
class HelperViewTest(unittest.TestCase):
    """ Caso de teste da Browser View BarraHelper"""

    layer = INTEGRATION_TESTING

    def setUp(self):
        self.portal = self.layer['portal']
        self.request = self.portal.REQUEST
        pp = api.portal.get_tool('portal_properties')
        self.barra_helper = api.content.get_view(
            name='barra_helper',
            context=self.portal,
            request=self.request,
        )
        self.sheet = getattr(pp, 'brasil_gov', None)

        self.barra_viewlet_js = BarraViewletJs(
            self.portal, self.request, None, None)

        # Setup site language settings
        ltool = self.portal.portal_languages
        defaultLanguage = BARRA_JS_DEFAULT_LANGUAGE
        supportedLanguages = [BARRA_JS_DEFAULT_LANGUAGE, 'en', 'es', 'fr']
        ltool.manage_setLanguageSettings(defaultLanguage, supportedLanguages,
                                         setUseCombinedLanguageCodes=False)
        self.ltool = ltool
        self.ltool.setLanguageBindings()

    def test_helper_view_registration(self):
        """ Validamos se BarraHelper esta registrada"""
        view = self.barra_helper.__of__(self.portal)
        self.assertTrue(view)

    def test_helper_view_local(self):
        """Uso do metodo local"""
        # Validamos que ela retorne o valor padrao para
        # o metodo remoto(configurado em profiles/default/propertiestool.xml)
        self.assertFalse(self.barra_helper.local())
        # Alteramos o valor para hospedagem para local
        self.sheet.local = True
        # O resultado da consulta a Browser View deve se adequar
        self.assertTrue(self.barra_helper.local())

    def test_helper_false_mostra_barra_remota(self):
        """
        Não marcando a opção 'local', deve mostrar barra externa e não deve
        aparecer barra interna.
        """
        self.barra_viewlet_js.update()
        self.assertNotIn(BARRA_LOCAL_HTML, self.barra_viewlet_js.render())
        self.assertIn(BARRA_EXTERNA_HTML, self.barra_viewlet_js.render())

    def test_helper_true_mostra_barra_local(self):
        """
        Marcando opção local, deve mostrar barra local e não deve aparecer
        barra externa.
        """
        self.sheet.local = True
        self.barra_viewlet_js.update()
        self.assertIn(BARRA_LOCAL_HTML, self.barra_viewlet_js.render())
        self.assertNotIn(BARRA_EXTERNA_HTML, self.barra_viewlet_js.render())

    @staticmethod
    def get_version(code):
        return code[code.find('@version'):code.find(' @source')]

    def test_js_external_mesma_versao_static(self):
        """
        Baixa a última versão da barra diretamente do servidor do ministério
        do planejamento para ver se a versão da nossa pasta static é a mesma.

        Se não for, avisa no teste e já indica o que tem de ser feito para
        corrigir.
        """
        from filecmp import cmp
        import requests

        barra_js_tmp_location = '/tmp/{0}'.format(BARRA_JS_FILE)  # nosec
        headers = {
            'Accept-Language': BARRA_JS_DEFAULT_LANGUAGE,
            'Cache-Control': 'no-cache',
        }
        r = requests.get(BARRA_JS_URL, headers=headers)
        code = r.text.encode('utf-8')

        with open(barra_js_tmp_location, 'wb') as output:
            output.write(code)

        iguais = cmp(barra_js_tmp_location, BARRA_JS_STATIC_FILE_LOCATION)

        msg = (
            'O código da barra foi atualizado ({0}); '
            'rode o buildout para atualizar a cópia local'
        )
        self.assertTrue(iguais, msg.format(self.get_version(code)))
Ejemplo n.º 8
0
class HelperViewTest(unittest.TestCase):
    """ Caso de teste da Browser View BarraHelper"""
    layer = INTEGRATION_TESTING

    def setUp(self):
        self.portal = self.layer['portal']
        self.request = self.portal.REQUEST
        pp = api.portal.get_tool('portal_properties')
        self.barra_helper = api.content.get_view(
            name='barra_helper',
            context=self.portal,
            request=self.request,
        )
        self.sheet = getattr(pp, 'brasil_gov', None)

        self.barra_viewlet_js = BarraViewletJs(
            self.portal,
            self.request,
            None,
            None
        )

        # Como nao eh um teste funcional, este objeto
        # REQUEST precisa ser anotado com o browser layer
        alsoProvides(self.portal.REQUEST, IBarraInstalada)

    def test_helper_view_registration(self):
        """ Validamos se BarraHelper esta registrada"""
        view = self.barra_helper.__of__(self.portal)
        self.assertTrue(view)

    def test_helper_view_local(self):
        """Uso do metodo local"""
        # Validamos que ela retorne o valor padrao para
        # o metodo remoto(configurado em profiles/default/propertiestool.xml)
        self.assertFalse(self.barra_helper.local())
        # Alteramos o valor para hospedagem para local
        self.sheet.local = True
        # O resultado da consulta a Browser View deve se adequar
        self.assertTrue(self.barra_helper.local())

    def test_helper_false_mostra_barra_remota(self):
        """
        Não marcando a opção 'local', deve mostrar barra externa e não deve
        aparecer barra interna.
        """
        self.barra_viewlet_js.update()
        self.assertFalse(BARRA_LOCAL_HTML in self.barra_viewlet_js.render())
        self.assertTrue(BARRA_EXTERNA_HTML in self.barra_viewlet_js.render())

    def test_helper_true_mostra_barra_local(self):
        """
        Marcando opção local, deve mostrar barra local e não deve aparecer
        barra externa.
        """
        self.sheet.local = True
        self.barra_viewlet_js.update()
        self.assertTrue(BARRA_LOCAL_HTML in self.barra_viewlet_js.render())
        self.assertFalse(BARRA_EXTERNA_HTML in self.barra_viewlet_js.render())

    def test_js_external_mesma_versao_static(self):
        """
        Baixa a última versão da barra diretamente do servidor do ministério
        do planejamento para ver se a versão da nossa pasta static é a mesma.

        Se não for, avisa no teste e já indica o que tem de ser feito para
        corrigir.
        """
        prevent_cache_random_string = str(time()).split('.')[0]
        url = '{0}?v={1}'.format(BARRA_JS_URL, prevent_cache_random_string)
        barra_js_tmp_location = '/tmp/{0}'.format(BARRA_JS_FILE)
        request = urllib2.Request(
            url,
            headers={'Accept-Language': BARRA_JS_DEFAULT_LANGUAGE}
        )

        barra_js = urllib2.urlopen(request)

        with open(barra_js_tmp_location, 'wb') as output:
            output.write(barra_js.read())

        iguais = cmp(barra_js_tmp_location, BARRA_JS_STATIC_FILE_LOCATION)

        # Caso esse teste falhe, rode o comando
        # wget --header="Accept-Language: {0}" http://barra.brasil.gov.br/barra.js?v=$RANDOM && mv barra.js\?v=* barra.js
        # em seu terminal para pegar a última versão da barra para poder fazer
        # o teste passar.
        self.assertTrue(iguais)