Skip to content

Commit

Permalink
MPEG e OGG Audio File podem ser editados pela folder_contents.
Browse files Browse the repository at this point in the history
  • Loading branch information
idgserpro committed Jun 6, 2019
1 parent 8c7cd3a commit 3373551
Show file tree
Hide file tree
Showing 6 changed files with 56 additions and 3 deletions.
2 changes: 2 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ Changelog
2.1.2 (unreleased)
^^^^^^^^^^^^^^^^^^

- Permite edição do tipo "MPEG Audio File" e "OGG Audio File" através da aba "Conteúdo". (atende parcialmente `#587 <https://github.com/plonegovbr/brasil.gov.portal/issues/587>`_).
[idgserpro]
- Permite edição do tipo Infográfico através da aba "Conteúdo". (atende parcialmente `#578 <https://github.com/plonegovbr/brasil.gov.portal/issues/578>`_).
[idgserpro]

Expand Down
2 changes: 2 additions & 0 deletions src/brasil/gov/portal/profiles/default/propertiestool.xml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@
</property>
<property name="typesUseViewActionInListings" type="lines" purge="false">
<element value="Infographic"/>
<element value="MPEG Audio File"/>
<element value="OGG Audio File"/>
</property>
<property name="icon_visibility" type="string">authenticated</property>
</object>
Expand Down
34 changes: 32 additions & 2 deletions src/brasil/gov/portal/tests/test_audio_content_type.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,14 @@
from brasil.gov.portal.content.audio_file import IMPEGAudioFile
from brasil.gov.portal.content.audio_file import IOGGAudioFile
from brasil.gov.portal.testing import INTEGRATION_TESTING
from brasil.gov.portal.tests.utils import login_browser
from plone import api
from plone.app.testing import setRoles
from plone.app.testing import TEST_USER_ID
from plone.dexterity.interfaces import IDexterityFTI
from plone.dexterity.schema import SCHEMA_CACHE
from plone.namedfile.file import NamedBlobFile
from plone.testing.z2 import Browser
from zope.component import createObject
from zope.component import queryUtility
from zope.interface import Invalid
Expand Down Expand Up @@ -126,14 +128,17 @@ class MPEGAudioFileTestCase(unittest.TestCase):

def setUp(self):
self.portal = self.layer['portal']
self.browser = Browser(self.layer['app'])
setRoles(self.portal, TEST_USER_ID, ['Manager'])
# Invalidate schema cache
SCHEMA_CACHE.invalidate('Audio')
SCHEMA_CACHE.invalidate('MPEG Audio File')

def _create_content(self, id_folder='test-folder'):
self.folder = api.content.create(
type='Folder',
container=self.portal,
id='test-folder',
id=id_folder,
)
self.audio = api.content.create(
type='Audio',
Expand All @@ -157,35 +162,49 @@ def setup_content_data(self):
self.ogg = NamedBlobFile(ogg_audio, 'audio/ogg', u'file.ogg')

def test_adding(self):
self._create_content()
self.assertTrue(IMPEGAudioFile.providedBy(self.mp3_audio))

def test_fti(self):
fti = queryUtility(IDexterityFTI, name='MPEG Audio File')
self.assertNotEqual(None, fti)

def test_validate_mpeg(self):
self._create_content()
from brasil.gov.portal.content.audio_file import validate_mpeg
self.assertTrue(validate_mpeg(self.mp3))
self.assertRaises(Invalid, validate_mpeg, self.ogg)

def test_file_content_type(self):
self._create_content()
self.assertEqual(self.mp3_audio.content_type, 'audio/mp3')

def test_edit_link_folder_contents(self):
"""https://github.com/plonegovbr/brasil.gov.portal/issues/587"""
self._create_content(id_folder='test-folder-MPEG')
login_browser(self.browser, self.portal)
url = self.mp3_audio.absolute_url()
self.browser.open('{0}/folder_contents'.format(url))
self.assertIn('file.mp3/view', self.browser.contents)


class OGGAudioFileTestCase(unittest.TestCase):

layer = INTEGRATION_TESTING

def setUp(self):
self.portal = self.layer['portal']
self.browser = Browser(self.layer['app'])
setRoles(self.portal, TEST_USER_ID, ['Manager'])
# Invalidate schema cache
SCHEMA_CACHE.invalidate('Audio')
SCHEMA_CACHE.invalidate('OGG Audio File')

def _create_content(self, id_folder='test-folder'):
self.folder = api.content.create(
type='Folder',
container=self.portal,
id='test-folder',
id=id_folder,
)
self.audio = api.content.create(
type='Audio',
Expand All @@ -209,20 +228,31 @@ def setup_content_data(self):
self.ogg = NamedBlobFile(ogg_audio, 'audio/ogg', u'file.ogg')

def test_adding(self):
self._create_content()
self.assertTrue(IOGGAudioFile.providedBy(self.ogg_audio))

def test_fti(self):
fti = queryUtility(IDexterityFTI, name='OGG Audio File')
self.assertNotEqual(None, fti)

def test_validate_ogg(self):
self._create_content()
from brasil.gov.portal.content.audio_file import validate_ogg
self.assertTrue(validate_ogg(self.ogg))
self.assertRaises(Invalid, validate_ogg, self.mp3)

def test_file_content_type(self):
self._create_content()
self.assertEqual(self.ogg_audio.content_type, 'audio/ogg')

def test_edit_link_folder_contents(self):
"""https://github.com/plonegovbr/brasil.gov.portal/issues/587"""
self._create_content(id_folder='test-folder-OGG')
login_browser(self.browser, self.portal)
url = self.ogg_audio.absolute_url()
self.browser.open('{0}/folder_contents'.format(url))
self.assertIn('file.ogg/view', self.browser.contents)


class AudioViewTestCase(unittest.TestCase):

Expand Down
17 changes: 17 additions & 0 deletions src/brasil/gov/portal/tests/utils.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# -*- coding: utf-8 -*-
from plone.app.testing import setRoles
from plone.app.testing import TEST_USER_ID
from plone.app.testing import TEST_USER_NAME
from plone.app.testing import TEST_USER_PASSWORD
import transaction


def login_browser(browser, portal):
"""Autentica usuário de teste no browser"""
setRoles(portal, TEST_USER_ID, ['Site Administrator'])
browser.handleErrors = False
basic_auth = 'Basic {0}'.format(
'{0}:{1}'.format(TEST_USER_NAME, TEST_USER_PASSWORD)
)
browser.addHeader('Authorization', basic_auth)
transaction.commit()
2 changes: 1 addition & 1 deletion src/brasil/gov/portal/upgrades/v10907/configure.zcml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
profile="brasil.gov.portal:default">

<genericsetup:upgradeDepends
title="Torna possivel editar um infografico em folder_contents."
title="Torna possivel editar um infografico, MPEG Audio File e OGG Audio File em folder_contents."
import_profile="brasil.gov.portal.upgrades.v10907:default"
/>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
<object name="site_properties" meta_type="Plone Property Sheet">
<property name="typesUseViewActionInListings" type="lines" purge="false">
<element value="Infographic"/>
<element value="MPEG Audio File"/>
<element value="OGG Audio File"/>
</property>
</object>
</object>

0 comments on commit 3373551

Please sign in to comment.