This repository has been archived by the owner on Apr 9, 2023. It is now read-only.
/
base.py
64 lines (46 loc) · 1.83 KB
/
base.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
from os.path import abspath, dirname, join
from unittest import TestCase
from zope.component import queryUtility
from zope.interface.verify import verifyClass
from plone.transforms.interfaces import ITransform
from plone.transforms.interfaces import ITransformResult
from plone.transforms.tests.layer import TransformLayer
def input_file_path(file_, name):
return join(abspath(dirname(file_)), 'input', name)
class TransformTestCase(TestCase):
layer = TransformLayer
name = None
class_ = None
interface = None
input_ = None
output = None
def test_interface(self):
verifyClass(self.interface, self.class_)
def test_registration(self):
util = queryUtility(ITransform, name=self.name)
self.failIf(util is None)
self.failUnless(isinstance(util, self.class_))
def test_invalid_transform(self):
util = queryUtility(ITransform, name=self.name)
try:
result = util.transform(None)
except ValueError, e:
if e.args[0].endswith('The transform is unavailable.'):
return
raise
self.failUnless(result is None)
result = util.transform(u'foo')
self.failUnless(result is None)
def test_transform(self):
util = queryUtility(ITransform, name=self.name)
if not util.available:
return
result = util.transform(self.input_)
# Make sure we got back a proper result
self.failUnless(ITransformResult.providedBy(result))
self.failUnless(not result.errors)
# Did we get an iterator as the primary result data?
self.failUnless(getattr(result.data, 'next', None) is not None)
# Check the beginning of the output only
result_string = ''.join(result.data)
self.failUnless(result_string.startswith(self.output))