Skip to content

Commit

Permalink
Increase test coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
hvelarde committed Jun 1, 2015
1 parent 6e2330e commit 674fc24
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 11 deletions.
33 changes: 27 additions & 6 deletions src/sc/photogallery/tests/test_setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,16 @@

import unittest

CSS = '++resource++sc.photogallery/photogallery.css'
JS = (
'++resource++collective.js.cycle2/jquery.cycle2.js',
'++resource++collective.js.cycle2/jquery.cycle2.carousel.js',
'++resource++collective.js.cycle2/jquery.cycle2.swipe.min.js',
'++resource++sc.photogallery/photogallery.js',
)

CSS = (
'++resource++sc.photogallery/photogallery.css',
)


class TestInstall(unittest.TestCase):
Expand All @@ -25,9 +34,15 @@ def test_installed(self):
def test_browser_layer_installed(self):
self.assertIn(IBrowserLayer, registered_layers())

def test_jsregistry(self):
js_resources = self.portal['portal_javascripts'].getResourceIds()
for id in JS:
self.assertIn(id, js_resources)

def test_cssregistry(self):
resource_ids = self.portal.portal_css.getResourceIds()
self.assertIn(CSS, resource_ids)
css_resources = self.portal['portal_css'].getResourceIds()
for id in CSS:
self.assertIn(id, css_resources)

def test_default_page_types(self):
sprops = self.portal['portal_properties'].site_properties
Expand Down Expand Up @@ -57,9 +72,15 @@ def test_uninstalled(self):
def test_browser_layer_removed_uninstalled(self):
self.assertNotIn(IBrowserLayer, registered_layers())

def test_cssregistry_removed(self):
resource_ids = self.portal.portal_css.getResourceIds()
self.assertNotIn(CSS, resource_ids)
def test_jsregistry(self):
js_resources = self.portal['portal_javascripts'].getResourceIds()
for id in JS:
self.assertNotIn(id, js_resources)

def test_cssregistry(self):
css_resources = self.portal['portal_css'].getResourceIds()
for id in CSS:
self.assertNotIn(id, css_resources)

def test_default_page_types_removed(self):
sprops = self.portal['portal_properties'].site_properties
Expand Down
35 changes: 31 additions & 4 deletions src/sc/photogallery/tests/test_upgrades.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ def setUp(self, from_version, to_version):
self.to_version = to_version

def _get_upgrade_step_by_title(self, title):
"""Return the upgrade step that matches with the title specified.
"""Return the upgrade step that matches the title specified.
:param title: the title used to register the upgrade step
:type title: str
Expand All @@ -26,14 +26,13 @@ def _get_upgrade_step_by_title(self, title):
self.setup.setLastVersionForProfile(self.profile_id, self.from_version)
upgrades = self.setup.listUpgrades(self.profile_id)
steps = [s for s in upgrades[0] if s['title'] == title]
print type(steps[0])
return steps[0] if steps else None

def _do_upgrade_step(self, step):
"""Execute an upgrade step.
:param title: the step we want to run
:type title: dict
:param step: the step we want to run
:type step: dict
"""
request = self.layer['request']
request.form['profile_id'] = self.profile_id
Expand All @@ -57,3 +56,31 @@ def test_registered_steps(self):
version = self.setup.getLastVersionForProfile(self.profile_id)[0]
self.assertGreaterEqual(int(version), int(self.to_version))
self.assertEqual(self._get_registered_steps, 3)

def test_miscellaneous(self):
# check if the upgrade step is registered
title = u'Miscellaneous'
step = self._get_upgrade_step_by_title(title)
self.assertIsNotNone(step)

# simulate state on previous version
js_tool = self.portal['portal_javascripts']
from sc.photogallery.tests.test_setup import JS
for id in JS:
js_tool.unregisterResource(id)

self.assertEqual(
set([JS]) & set([js_tool.getResourceIds()]), set([]))

types_tool = self.portal['portal_types']
old_klass = 'sc.photogallery.content.photogallery.PhotoGallery'
new_klass = 'sc.photogallery.content.PhotoGallery'
types_tool['Photo Gallery'].klass = old_klass
self.assertEqual(types_tool['Photo Gallery'].klass, old_klass)

# run the upgrade step to validate the update
self._do_upgrade_step(step)
for id in JS:
self.assertIn(id, js_tool.getResourceIds())

self.assertEqual(types_tool['Photo Gallery'].klass, new_klass)
4 changes: 3 additions & 1 deletion src/sc/photogallery/upgrades/v1001/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ def update_catalog(context):
catalog = api.portal.get_tool('portal_catalog')
results = catalog(object_provides=IPhotoGallery.__identifier__)
logger.info(u'{0} objects found'.format(len(results)))
for obj in (i.getObject() for i in results):
# use a generator to save memory
results = (i.getObject() for i in results)
for obj in results:
obj.reindexObject()
logger.info(u'Catalog successfully updated')

0 comments on commit 674fc24

Please sign in to comment.