Skip to content

Commit a575a0e

Browse files
committed
CR update - minor - addtional tests
[#SVCS-86]
1 parent ba45d59 commit a575a0e

File tree

7 files changed

+64
-43
lines changed

7 files changed

+64
-43
lines changed

mfr/core/utils.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
from time import time
2+
from os.path import getctime
3+
14
from stevedore import driver
25

36
from mfr.core import exceptions
@@ -106,3 +109,8 @@ def sizeof_fmt(num, suffix='B'):
106109
return '%3.1f%s%s' % (num, unit, suffix)
107110
num /= 1000.0
108111
return '%.1f%s%s' % (num, 'Y', suffix)
112+
113+
def file_expired(path: str, ttl: int) -> bool:
114+
if (time() - getctime(path)) >= ttl:
115+
return True
116+
return False

mfr/extensions/papaya/render.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import os
2-
import time
32
import shutil
43

54
from mako.lookup import TemplateLookup
65

6+
from mfr.core import utils
77
from mfr.core import extension
88
from mfr.extensions import settings as ext_settings
99
from mfr.extensions.papaya import settings
@@ -12,7 +12,7 @@
1212
class PapayaRenderer(extension.BaseRenderer):
1313

1414
data_dir = settings.DATA_DIR
15-
data_old = settings.DATA_OLD
15+
data_ttl = settings.DATA_TTL
1616
comp_ext = ext_settings.COMPRESSED_EXT
1717

1818
TEMPLATE = TemplateLookup(
@@ -34,9 +34,7 @@ def render(self):
3434
def remove_old_files(self):
3535

3636
for data_file in os.listdir(self.data_dir):
37-
if data_file == '.gitignore':
38-
continue
39-
if (time.time() - os.path.getctime(self.data_dir + data_file)) >= self.data_old:
37+
if utils.file_expired(self.data_dir + data_file, self.data_ttl):
4038
os.unlink(self.data_dir + data_file)
4139

4240
@property

mfr/extensions/papaya/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@
55
# Directory to temporarily store papaya image files
66
DATA_DIR = 'mfr/extensions/papaya/static/data/'
77
# Files older then this many seconds will be deleted from DATA_DIR at the beggining of each render.
8-
DATA_OLD = 300
8+
DATA_TTL = 300

mfr/extensions/papaya/static/papaya.js

Lines changed: 21 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Binary file not shown.
Binary file not shown.
Lines changed: 31 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,57 @@
11
import pytest
22

33
from mfr.core.provider import ProviderMetadata
4-
54
from mfr.extensions.papaya import PapayaRenderer
65

7-
86
@pytest.fixture
9-
def metadata():
10-
return ProviderMetadata('test.nii', '.gz', 'text/plain', '1234', 'http://wb.osf.io/file/test.nii.gz?token=1234')
7+
def assets_url():
8+
return 'http://mfr.osf.io/assets'
119

1210

1311
@pytest.fixture
14-
def file_path():
15-
return './tests/extensions/papaya/files/507643e2-c0fb-45e4-805e-96231c8251de'
12+
def export_url():
13+
return 'http://mfr.osf.io/export?url='
1614

1715

1816
@pytest.fixture
19-
def url():
20-
return 'http://osf.io/file/test.nii.gz'
17+
def test_file_dir():
18+
return './tests/extensions/papaya/files/'
2119

2220

2321
@pytest.fixture
24-
def assets_url():
25-
return 'http://mfr.osf.io/assets'
22+
def url():
23+
return 'http://osf.io/file/test'
2624

2725

28-
@pytest.fixture
29-
def export_url():
30-
return 'http://mfr.osf.io/export?url=' + url()
26+
valid_render_data = [(ProviderMetadata('test.nii', '.gz', 'text/plain', '1234',
27+
'http://wb.osf.io/file/test.nii.gz?token=1234'),
28+
'507643e2-c0fb-45e4-805e-96231c8251de',
29+
'.nii.gz'
30+
),
31+
(ProviderMetadata('test', '.nii', 'text/plain', '1234',
32+
'http://wb.osf.io/file/test.nii?to ken=1234'),
33+
'298783da-64b0-44e0-bab6-5716ecb9535d',
34+
'.nii'
35+
),
36+
(ProviderMetadata('test', '.dcm', 'text/plain', '1234',
37+
'http://wb.osf.io/file/test.dcm?to ken=1234'),
38+
'b24a0d9f-c38a-42bd-a2e7-5448d3ce0060',
39+
'.dcm'
40+
)]
3141

3242

33-
@pytest.fixture
34-
def renderer(metadata, file_path, url, assets_url, export_url):
35-
return PapayaRenderer(metadata, file_path, url, assets_url, export_url)
43+
@pytest.fixture(params=valid_render_data)
44+
def valid_renderer(request, assets_url, export_url, test_file_dir, url):
45+
metadata, file_name, file_ext = request.param
46+
return PapayaRenderer(metadata, test_file_dir + file_name, url, assets_url,
47+
export_url + url + file_ext), file_name, file_ext
3648

3749

3850
class TestPapayaRenderer:
3951

40-
def test_render_papaya(self, renderer, metadata, assets_url):
52+
def test_render_papaya_valid(self, valid_renderer):
53+
renderer, file_name, file_ext = valid_renderer
4154
body = renderer.render()
42-
print(body)
4355
assert '<script type="text/javascript" src="http://mfr.osf.io/assets/papaya/papaya.js"></script>' in body
44-
assert 'params["images"] = ["http://mfr.osf.io/assets/papaya/data/507643e2-c0fb-45e4-805e-96231c8251de.nii.gz"]' in body
56+
assert 'params["images"] = ["http://mfr.osf.io/assets/papaya/data/{}{}"]'.format(file_name, file_ext) in body
4557
assert '<div class="papaya" data-params="params"></div>' in body

0 commit comments

Comments
 (0)