• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

zopefoundation / Products.CMFCore / 6246931310

20 Sep 2023 09:54AM UTC coverage: 86.008% (-0.3%) from 86.266%
6246931310

Pull #131

github

mauritsvanrees
gha: don't need setup-python on 27 as we use the 27 container.
Pull Request #131: Make decodeFolderFilter and encodeFolderFilter non-public.

2466 of 3689 branches covered (0.0%)

Branch coverage included in aggregate %.

6 of 6 new or added lines in 1 file covered. (100.0%)

17297 of 19289 relevant lines covered (89.67%)

0.9 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

84.25
/src/Products/CMFCore/testing.py
1
##############################################################################
2
#
3
# Copyright (c) 2005 Zope Foundation and Contributors.
4
#
5
# This software is subject to the provisions of the Zope Public License,
6
# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
7
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
8
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
9
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
10
# FOR A PARTICULAR PURPOSE.
11
#
12
##############################################################################
13
""" Unit test mixin classes and layers.
1✔
14
"""
15

16
from OFS.SimpleItem import SimpleItem
1✔
17
from Testing.ZopeTestCase.layer import ZopeLite
1✔
18
from Zope2.App import zcml
1✔
19
from zope.component import adapts
1✔
20
from zope.component.hooks import setHooks
1✔
21
from zope.i18n.interfaces import IUserPreferredLanguages
1✔
22
from zope.interface import implementer
1✔
23
from zope.interface.verify import verifyClass
1✔
24
from zope.publisher.interfaces.http import IHTTPRequest
1✔
25
from zope.testing.cleanup import cleanUp
1✔
26

27
from Products.GenericSetup.utils import BodyAdapterBase
1✔
28

29
from .interfaces import IWorkflowDefinition
1✔
30
from .utils import HAS_ZSERVER
1✔
31

32

33
class ConformsToFolder:
1✔
34

35
    def test_conforms_to_IWritelock(self):
1✔
36
        try:
1✔
37
            from OFS.interfaces import IWriteLock
1✔
38
        except ImportError:
39
            from webdav.interfaces import IWriteLock
40
        verifyClass(IWriteLock, self._getTargetClass())
1✔
41

42
    def test_conforms_to_IDynamicType(self):
1✔
43
        from .interfaces import IDynamicType
1✔
44
        verifyClass(IDynamicType, self._getTargetClass())
1✔
45

46
    def test_conforms_to_IFolderish(self):
1✔
47
        from .interfaces import IFolderish
1✔
48
        verifyClass(IFolderish, self._getTargetClass())
1✔
49

50
    def test_conforms_to_IMutableDublinCore(self):
1✔
51
        from .interfaces import IMutableMinimalDublinCore
1✔
52
        verifyClass(IMutableMinimalDublinCore, self._getTargetClass())
1✔
53

54
    def test_folder_extra_interfaces(self):
1✔
55
        # in the long run this interface will become deprecated
56
        from .interfaces import IOpaqueItemManager
1✔
57

58
        verifyClass(IOpaqueItemManager, self._getTargetClass())
1✔
59

60

61
class ConformsToContent:
1✔
62

63
    def test_content_interfaces(self):
1✔
64
        from Products.GenericSetup.interfaces import IDAVAware
×
65

66
        from .interfaces import ICatalogableDublinCore
×
67
        from .interfaces import IContentish
×
68
        from .interfaces import IDublinCore
×
69
        from .interfaces import IDynamicType
×
70
        from .interfaces import IMutableDublinCore
×
71

72
        verifyClass(ICatalogableDublinCore, self._getTargetClass())
×
73
        verifyClass(IContentish, self._getTargetClass())
×
74
        verifyClass(IDublinCore, self._getTargetClass())
×
75
        verifyClass(IDynamicType, self._getTargetClass())
×
76
        verifyClass(IMutableDublinCore, self._getTargetClass())
×
77
        if HAS_ZSERVER:
×
78
            verifyClass(IDAVAware, self._getTargetClass())
×
79

80
    def test_content_extra_interfaces(self):
1✔
81
        # in the long run these interfaces will become deprecated
82
        from .interfaces import ICatalogAware
×
83
        from .interfaces import IOpaqueItemManager
×
84
        from .interfaces import IWorkflowAware
×
85

86
        verifyClass(ICatalogAware, self._getTargetClass())
×
87
        verifyClass(IOpaqueItemManager, self._getTargetClass())
×
88
        verifyClass(IWorkflowAware, self._getTargetClass())
×
89

90

91
@implementer(IUserPreferredLanguages)
1✔
92
class BrowserLanguages(object):
1✔
93

94
    adapts(IHTTPRequest)
1✔
95

96
    def __init__(self, context):
1✔
97
        self.context = context
×
98

99
    def getPreferredLanguages(self):
1✔
100
        return ('test',)
×
101

102

103
class EventZCMLLayer(ZopeLite):
1✔
104

105
    @classmethod
1✔
106
    def testSetUp(cls):
1✔
107
        import OFS
1✔
108

109
        import Products
1✔
110

111
        zcml.load_config('meta.zcml', Products.Five)
1✔
112
        zcml.load_config('event.zcml', OFS)
1✔
113
        zcml.load_config('event.zcml', Products.CMFCore)
1✔
114
        setHooks()
1✔
115

116
    @classmethod
1✔
117
    def testTearDown(cls):
1✔
118
        cleanUp()
1✔
119

120

121
class TraversingZCMLLayer(ZopeLite):
1✔
122

123
    @classmethod
1✔
124
    def testSetUp(cls):
1✔
125
        import Products.Five
1✔
126
        import zope.traversing
1✔
127

128
        zcml.load_config('meta.zcml', Products.Five)
1✔
129
        zcml.load_config('configure.zcml', zope.traversing)
1✔
130
        setHooks()
1✔
131

132
    @classmethod
1✔
133
    def testTearDown(cls):
1✔
134
        cleanUp()
1✔
135

136

137
class TraversingEventZCMLLayer(ZopeLite):
1✔
138

139
    @classmethod
1✔
140
    def testSetUp(cls):
1✔
141
        import OFS
1✔
142
        import Products.Five
1✔
143
        import zope.traversing
1✔
144

145
        zcml.load_config('meta.zcml', Products.Five)
1✔
146
        zcml.load_config('configure.zcml', zope.traversing)
1✔
147
        zcml.load_config('event.zcml', OFS)
1✔
148
        zcml.load_config('event.zcml', Products.CMFCore)
1✔
149
        zcml.load_config('tool.zcml', Products.CMFCore)
1✔
150
        setHooks()
1✔
151

152
    @classmethod
1✔
153
    def testTearDown(cls):
1✔
154
        cleanUp()
1✔
155

156

157
class FunctionalZCMLLayer(ZopeLite):
1✔
158

159
    @classmethod
1✔
160
    def setUp(cls):
1✔
161
        import Products
1✔
162

163
        zcml.load_config('testing.zcml', Products.CMFCore)
1✔
164
        setHooks()
1✔
165

166
    @classmethod
1✔
167
    def tearDown(cls):
1✔
168
        cleanUp()
1✔
169

170

171
_DUMMY_ZCML = """\
1✔
172
<configure
173
    xmlns="http://namespaces.zope.org/zope"
174
    xmlns:five="http://namespaces.zope.org/five"
175
    i18n_domain="dummy">
176
  <permission id="dummy.add" title="Add Dummy Workflow"/>
177
  <five:registerClass
178
      class="Products.CMFCore.testing.DummyWorkflow"
179
      meta_type="Dummy Workflow"
180
      permission="dummy.add"
181
      addview="addDummyWorkflow.html"
182
      global="false"
183
      />
184
  <adapter
185
      factory="Products.CMFCore.testing.DummyWorkflowBodyAdapter"
186
      provides="Products.GenericSetup.interfaces.IBody"
187
      for="Products.CMFCore.interfaces.IWorkflowDefinition
188
           Products.GenericSetup.interfaces.ISetupEnviron"
189
      />
190
</configure>
191
"""
192

193

194
@implementer(IWorkflowDefinition)
1✔
195
class DummyWorkflow(SimpleItem):
1✔
196

197
    meta_type = 'Dummy Workflow'
1✔
198

199
    def __init__(self, id):
1✔
200
        self._id = id
1✔
201

202
    def getId(self):
1✔
203
        return self._id
1✔
204

205

206
class DummyWorkflowBodyAdapter(BodyAdapterBase):
1✔
207

208
    body = property(BodyAdapterBase._exportBody, BodyAdapterBase._importBody)
1✔
209

210

211
class ExportImportZCMLLayer(ZopeLite):
1✔
212

213
    @classmethod
1✔
214
    def testSetUp(cls):
1✔
215
        import AccessControl
1✔
216
        import Products.Five
1✔
217
        import Zope2.App
1✔
218

219
        import Products.CMFCore
1✔
220
        import Products.CMFCore.exportimport
1✔
221
        import Products.GenericSetup
1✔
222

223
        zcml.load_config('meta.zcml', Zope2.App)
1✔
224
        zcml.load_config('meta.zcml', Products.Five)
1✔
225
        zcml.load_config('permissions.zcml', AccessControl)
1✔
226
        zcml.load_config('permissions.zcml', Products.Five)
1✔
227
        zcml.load_config('meta.zcml', Products.GenericSetup)
1✔
228
        zcml.load_config('configure.zcml', Products.GenericSetup)
1✔
229
        zcml.load_config('permissions.zcml', Products.CMFCore)
1✔
230
        zcml.load_config('tool.zcml', Products.CMFCore)
1✔
231
        zcml.load_config('configure.zcml', Products.CMFCore.exportimport)
1✔
232
        zcml.load_string(_DUMMY_ZCML)
1✔
233
        setHooks()
1✔
234

235
    @classmethod
1✔
236
    def testTearDown(cls):
1✔
237
        cleanUp()
1✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc