/
test_preview.py
94 lines (77 loc) · 2.82 KB
/
test_preview.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
import pylons
import paste.fixture
import pylons.config as config
import ckan.logic as logic
import ckan.model as model
import ckan.tests as tests
import ckan.plugins as plugins
import ckan.lib.helpers as h
import ckanext.pdfpreview.plugin as previewplugin
from ckan.lib.create_test_data import CreateTestData
from ckan.config.middleware import make_app
class TestPdfPreview(tests.WsgiAppCase):
@classmethod
def setup_class(cls):
wsgiapp = make_app(config['global_conf'], **config)
plugins.load('pdf_preview')
cls.app = paste.fixture.TestApp(wsgiapp)
cls.p = previewplugin.PdfPreview()
# create test resource
CreateTestData.create()
context = {
'model': model,
'session': model.Session,
'user': model.User.get('testsysadmin').name
}
cls.package = model.Package.get('annakarenina')
cls.resource = logic.get_action('resource_show')(context, {'id': cls.package.resources[1].id})
cls.resource['url'] = pylons.config.get('ckan.site_url', '//localhost:5000')
cls.resource['format'] = 'pdf'
logic.action.update.resource_update(context, cls.resource)
@classmethod
def teardown_class(cls):
plugins.unload('pdf_preview')
CreateTestData.delete()
def test_can_preview(self):
data_dict = {
'resource': {
'format': 'pdf',
'on_same_domain': True
}
}
assert self.p.can_preview(data_dict)
data_dict = {
'resource': {
'format': 'x-pdf',
'on_same_domain': True
}
}
assert self.p.can_preview(data_dict)
data_dict = {
'resource': {
'format': 'pdf',
'on_same_domain': True
}
}
assert self.p.can_preview(data_dict)
data_dict = {
'resource': {
'format': 'pdf',
'on_same_domain': False
}
}
assert not self.p.can_preview(data_dict)
def test_js_included(self):
res_id = self.resource['id']
pack_id = self.package.name
url = '/dataset/{0}/resource/{1}/preview'.format(pack_id, res_id)
result = self.app.get(url, status='*')
assert result.status == 200, result.status
assert (('preview_pdf.js' in result.body) or ('preview_pdf.min.js' in result.body))
assert 'preload_resource' in result.body
assert 'data-module="pdfpreview"' in result.body
def test_iframe_is_shown(self):
url = h.url_for(controller='package', action='resource_read', id=self.package.name, resource_id=self.resource['id'])
result = self.app.get(url)
assert 'data-module="data-viewer"' in result.body
assert '<iframe' in result.body