Skip to content

Commit 2003eee

Browse files
committed
Add test cases for download with access token
1 parent c6f46dd commit 2003eee

4 files changed

Lines changed: 52 additions & 1 deletion

File tree

weblab/conftest.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,22 @@ def queued_experiment(model_with_version, protocol_with_version):
249249
return version
250250

251251

252+
@pytest.fixture
253+
def queued_fittingresult(public_model, public_protocol, public_fittingspec, public_dataset):
254+
version = recipes.fittingresult_version.make(
255+
status='QUEUED',
256+
fittingresult__model=public_model,
257+
fittingresult__model_version=public_model.repocache.latest_version,
258+
fittingresult__protocol=public_protocol,
259+
fittingresult__protocol_version=public_protocol.repocache.latest_version,
260+
fittingresult__fittingspec=public_fittingspec,
261+
fittingresult__fittingspec_version=public_fittingspec.repocache.latest_version,
262+
fittingresult__dataset=public_dataset,
263+
)
264+
recipes.running_experiment.make(runnable=version)
265+
return version
266+
267+
252268
@pytest.fixture
253269
def experiment_with_result(model_with_version, protocol_with_version):
254270
version = recipes.experiment_version.make(

weblab/core/recipes.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@
4848

4949
running_experiment = Recipe('RunningExperiment', runnable=foreign_key(runnable))
5050

51-
5251
dataset = Recipe('Dataset',
5352
name=seq('my dataset'),
5453
protocol=foreign_key(protocol))

weblab/datasets/tests/test_views.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,21 @@ def test_returns_404_for_nonexistent_file(self, my_dataset_with_file, client):
346346

347347
@pytest.mark.django_db
348348
class TestDatasetArchiveView:
349+
def test_anonymous_dataset_download_for_running_fittingresult(
350+
self, client, queued_fittingresult, my_dataset_with_file,
351+
):
352+
queued_fittingresult.fittingresult.dataset = my_dataset_with_file
353+
queued_fittingresult.fittingresult.save()
354+
355+
response = client.get(
356+
'/datasets/%d/archive' % my_dataset_with_file.pk,
357+
HTTP_AUTHORIZATION='Token {}'.format(queued_fittingresult.signature)
358+
)
359+
360+
assert response.status_code == 200
361+
archive = zipfile.ZipFile(BytesIO(response.content))
362+
assert archive.filelist[0].filename == 'mydataset.csv'
363+
349364
def test_download_archive(self, my_dataset_with_file, client):
350365
response = client.get('/datasets/%d/archive' % my_dataset_with_file.pk)
351366
assert response.status_code == 200

weblab/entities/tests/test_views.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1702,6 +1702,27 @@ def test_anonymous_protocol_download_for_running_experiment(self, client, queued
17021702
archive = zipfile.ZipFile(BytesIO(response.content))
17031703
assert archive.filelist[0].filename == 'file1.txt'
17041704

1705+
@pytest.mark.parametrize("entity_type,url_fragment", [
1706+
('model', '/entities/models'),
1707+
('protocol', '/entities/protocols'),
1708+
('fittingspec', '/fitting/specs'),
1709+
])
1710+
def test_anonymous_entity_download_for_running_fittingresult(
1711+
self, client, queued_fittingresult, entity_type, url_fragment
1712+
):
1713+
entity = getattr(queued_fittingresult.fittingresult, entity_type)
1714+
sha = entity.repo.latest_commit.sha
1715+
entity.set_version_visibility(sha, 'private')
1716+
1717+
response = client.get(
1718+
'%s/%d/versions/latest/archive' % (url_fragment, entity.pk),
1719+
HTTP_AUTHORIZATION='Token {}'.format(queued_fittingresult.signature)
1720+
)
1721+
1722+
assert response.status_code == 200
1723+
archive = zipfile.ZipFile(BytesIO(response.content))
1724+
assert archive.filelist[0].filename == 'file1.txt'
1725+
17051726
def test_anonymous_protocol_download_for_analysis_task(self, client, analysis_task):
17061727
protocol = analysis_task.entity
17071728
protocol.set_version_visibility('latest', 'private')

0 commit comments

Comments
 (0)