0001-portfolio-don-t-use-PicklableUpload-internals-39919.patch
tests/conftest.py | ||
---|---|---|
30 | 30 | |
31 | 31 |
@pytest.fixture |
32 | 32 |
def fargo_url(request, pub): |
33 |
return site_options(request, pub, 'options', 'fargo_url', 'http://fargo.example.net') |
|
33 |
return site_options(request, pub, 'options', 'fargo_url', 'http://fargo.example.net/')
|
|
34 | 34 | |
35 | 35 | |
36 | 36 |
@pytest.fixture |
tests/test_form_pages.py | ||
---|---|---|
2789 | 2789 |
assert 'fargo.js' not in resp.text |
2790 | 2790 |
assert 'use-file-from-fargo' not in resp.text |
2791 | 2791 | |
2792 |
resp = login(get_app(pub), username='foo', password='foo').get('/test/') |
|
2792 |
app = get_app(pub) |
|
2793 |
login(app, username='foo', password='foo') |
|
2794 |
resp = app.get('/test/') |
|
2793 | 2795 |
assert 'f0$file' in resp.text |
2794 | 2796 |
assert 'fargo.js' in resp.text |
2795 | 2797 |
assert 'use-file-from-fargo' in resp.text |
2796 | 2798 | |
2799 |
fargo_resp = app.get('/fargo/pick') # display file picker |
|
2800 |
assert fargo_resp.location == 'http://fargo.example.net/pick?pick=http%3A//example.net/fargo/pick' |
|
2801 |
with mock.patch('wcs.portfolio.urlopen') as urlopen: |
|
2802 |
urlopen.side_effect = lambda *args: BytesIO(b'...') |
|
2803 |
fargo_resp = app.get('/fargo/pick?url=http://www.example.org/...') |
|
2804 |
assert 'window.top.document.fargo_set_token' in fargo_resp.text |
|
2805 |
resp.form['f0$file'] = None |
|
2806 |
resp.form['f0$token'] = re.findall(r'fargo_set_token\("(.*?)"', fargo_resp.text)[0] |
|
2807 |
resp = resp.form.submit('submit') |
|
2808 |
assert 'Check values then click submit.' in resp.text |
|
2809 |
resp = resp.form.submit('submit') |
|
2810 |
assert formdef.data_class().count() == 1 |
|
2811 |
formdata = formdef.data_class().select()[0] |
|
2812 |
assert formdata.data['0'].get_content() == b'...' |
|
2813 | ||
2797 | 2814 |
file_field.allow_portfolio_picking = False |
2798 | 2815 |
formdef.store() |
2799 | 2816 |
wcs/portfolio.py | ||
---|---|---|
134 | 134 |
name = urllib.unquote(path[-1]) |
135 | 135 |
from .qommon.form import PicklableUpload |
136 | 136 |
download = PicklableUpload(name, content_type='application/pdf') |
137 |
download.__setstate__({ |
|
138 |
'data': document, |
|
139 |
}) |
|
137 |
download.receive([document]) |
|
140 | 138 |
tempfile = get_session().add_tempfile(download) |
141 | 139 |
return self.set_token(tempfile.get('token'), name) |
142 | 140 |
else: |
143 |
- |