/
test_setup.py
114 lines (86 loc) · 3.94 KB
/
test_setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# -*- coding: utf-8 -*-
from brasil.gov.vcge.config import PROJECTNAME
from brasil.gov.vcge.testing import HAS_DEXTERITY
from brasil.gov.vcge.testing import INTEGRATION_TESTING
from plone.app.testing import login
from plone.app.testing import setRoles
from plone.app.testing import TEST_USER_ID
from plone.app.testing import TEST_USER_NAME
from plone.browserlayer.utils import registered_layers
from Products.GenericSetup.upgrade import listUpgradeSteps
from zope.site.hooks import setSite
import unittest
STYLESHEETS = [
]
class BaseTestCase(unittest.TestCase):
"""base test case to be used by other tests"""
layer = INTEGRATION_TESTING
def setUpUser(self):
setRoles(self.portal, TEST_USER_ID, ['Manager', 'Editor', 'Reviewer'])
login(self.portal, TEST_USER_NAME)
def setUp(self):
portal = self.layer['portal']
setSite(portal)
self.portal = portal
self.qi = getattr(self.portal, 'portal_quickinstaller')
self.wt = getattr(self.portal, 'portal_workflow')
self.st = getattr(self.portal, 'portal_setup')
self.setUpUser()
class TestInstall(BaseTestCase):
"""ensure product is properly installed"""
def test_installed(self):
self.assertTrue(self.qi.isProductInstalled(PROJECTNAME),
'{0} not installed'.format(PROJECTNAME))
def test_dependencies_installed(self):
for product in ['raptus.autocompletewidget']:
self.assertTrue(self.qi.isProductInstalled(product),
'{0} not installed'.format(product))
@unittest.skipIf(not HAS_DEXTERITY, '"dexterity" extra not included')
def test_dx_dependencies_installed(self):
for product in ['plone.app.dexterity']:
self.assertTrue(self.qi.isProductInstalled(product),
'{0} not installed'.format(product))
def test_browserlayer(self):
from brasil.gov.vcge.interfaces import IVCGEInstalado
self.assertIn(IVCGEInstalado, registered_layers())
def test_cssregistry(self):
portal_css = self.portal.portal_css
for css in STYLESHEETS:
self.assertTrue(css in portal_css.getResourceIds(),
'{0} not installed'.format(css))
class TestUpgrade(BaseTestCase):
"""ensure product upgrades work"""
profile = 'brasil.gov.vcge:default'
def test_to1000_available(self):
upgradeSteps = listUpgradeSteps(self.st,
self.profile,
'0')
step = [step for step in upgradeSteps
if (step[0]['dest'] == ('1000',)) and
(step[0]['source'] == ('0',))]
# XXX: https://github.com/PyCQA/pylint/issues/2130
self.assertEqual(len(step), 1) # pylint: disable=comprehension-escape
def test_to2000_available(self):
upgradeSteps = listUpgradeSteps(self.st,
self.profile,
'1000')
step = [step for step in upgradeSteps
if (step[0]['dest'] == ('2000',)) and
(step[0]['source'] == ('1000',))]
# XXX: https://github.com/PyCQA/pylint/issues/2130
self.assertEqual(len(step), 1) # pylint: disable=comprehension-escape
class TestUninstall(BaseTestCase):
"""ensure product is properly uninstalled"""
def setUp(self):
BaseTestCase.setUp(self)
self.qi.uninstallProducts(products=[PROJECTNAME])
def test_uninstalled(self):
self.assertFalse(self.qi.isProductInstalled(PROJECTNAME))
def test_browserlayer(self):
from brasil.gov.vcge.interfaces import IVCGEInstalado
self.assertTrue(IVCGEInstalado not in registered_layers())
def test_cssregistry(self):
portal_css = self.portal.portal_css
for css in STYLESHEETS:
self.assertTrue(css not in portal_css.getResourceIds(),
'{0} installed'.format(css))