Skip to content

Commit

Permalink
Merge pull request #76 from icgc-dcc/testing
Browse files Browse the repository at this point in the history
Testing
  • Loading branch information
Chen2x committed May 12, 2017
2 parents 8573a33 + 502c559 commit d5ce295
Show file tree
Hide file tree
Showing 11 changed files with 136 additions and 18 deletions.
File renamed without changes.
26 changes: 24 additions & 2 deletions tests/test_init.py → tests/submission/test_init.py
@@ -1,5 +1,7 @@
from click.testing import CliRunner
from egasub.submission.init import truncate_string
from egasub.submission.init import init_workspace, truncate_string, make_dummy_dac, make_dummy_policy
from egasub.ega.entities import Dac, Policy, EgaEnums
import pytest

def test_init_function(ctx):
runner = CliRunner()
Expand All @@ -23,4 +25,24 @@ def test_init_function(ctx):

def test_truncate_string():
assert truncate_string("12345", 4) == "1234..."
assert truncate_string("12345", 5) == "12345"
assert truncate_string("12345", 5) == "12345"

def test_make_dummy_dac():
assert isinstance(make_dummy_dac(), Dac)

def test_make_dummy_policy():
assert isinstance(make_dummy_policy(make_dummy_dac()), Policy)

def test_init_workspace(ctx, mock_server):
ctx.obj['SETTINGS']['ega_submitter_account'] = 'test_account'
ctx.obj['SETTINGS']['ega_submitter_password'] = 'test_password'
ctx.obj['EGA_ENUMS'] = EgaEnums()
ctx.obj['SETTINGS']['ega_policy_id'] = 'test_id'

with pytest.raises(KeyError):
init_workspace(ctx, 'test_ac', 'test_pass', 'test_token', 'test_code')


ctx.obj['SETTINGS']['ega_submitter_account'] = None
ctx.obj['SETTINGS']['ega_submitter_password'] = None
ctx.obj['SETTINGS']['ega_policy_id'] = None
File renamed without changes.
33 changes: 33 additions & 0 deletions tests/submission/test_submit.py
@@ -0,0 +1,33 @@
from egasub.submission.submit import submittable_status, submit_dataset, perform_submission
from egasub.ega.entities.ega_enums import EgaEnums
import pytest
import os

def test_submittable_status():
assert submittable_status("fail") == None
assert submittable_status("tests/submission/test_submit.py") == ['']

def test_submit_dataset(ctx, mock_server):
with pytest.raises(AttributeError):
submit_dataset(ctx)

ctx.obj['SETTINGS']['ega_submitter_account'] = 'test_account'
ctx.obj['SETTINGS']['ega_submitter_password'] = 'test_password'
ctx.obj['SETTINGS']['ega_policy_id'] = 'test_id'
ctx.obj['CURRENT_DIR'] = os.path.join(os.getcwd(), 'tests/data/workspace/variation.20170119')
ctx.obj['EGA_ENUMS'] = EgaEnums()
#ctx.obj['EGA_ENUMS']['_enums'] = ''
with pytest.raises(AttributeError):
submit_dataset(ctx)




def test_perform_submission(ctx, mock_server):
perform_submission(ctx, '///')

ctx.obj['SETTINGS']['ega_submitter_account'] = None
ctx.obj['SETTINGS']['ega_submitter_password'] = None



File renamed without changes.
25 changes: 25 additions & 0 deletions tests/submission/test_submitter.py
@@ -0,0 +1,25 @@
from egasub.submission.submitter import Submitter
import os
import pytest
from egasub.submission.submittable import Unaligned
from egasub.ega.entities.sample import Sample
from egasub.ega.entities.attribute import Attribute

def test_submitter(ctx, mock_server):
initial_directory = os.getcwd()
os.chdir('tests/data/workspace/unaligned.20170110/')
#unaligned = Unaligned('ssample_y')
os.chdir(initial_directory)

submitter = Submitter(ctx)

ctx.obj['SUBMISSION']['sessionToken'] = 'X-Token'
ctx.obj['SETTINGS']['icgc_project_code'] = "abjdh"
#assert submitter.submit(unaligned, True) is None

attributes = [Attribute('tag1', 'value1'), Attribute('tag2', 'value2')]
sample = Sample('an alias','the title','the description',123,2,'head','test line','test region','a phenotype',33,'anonymized name',22,10,'some details',attributes,33)
with pytest.raises(Exception):
submitter.set_icgc_ids(sample, True)


36 changes: 35 additions & 1 deletion tests/submission/test_unaligned.py
@@ -1,14 +1,16 @@
import pytest
import os
import shutil
from egasub.submission.submittable import Unaligned
from egasub.ega.entities import Sample, \
from egasub.ega.entities import Sample, EgaEnums, \
Experiment as EExperiment, \
Run as ERun

def test_unaligned():
initial_directory = os.getcwd()
os.chdir('tests/data/workspace/unaligned.20170110/')
unaligned = Unaligned('ssample_y')
#unaligned2 = Unaligned('sample_x')

assert isinstance(unaligned.sample, Sample)
assert isinstance(unaligned.experiment, EExperiment)
Expand Down Expand Up @@ -78,6 +80,7 @@ def test_unaligned():
assert cmp(unaligned.experiment.to_dict(),reference_experiment) == 0
assert cmp(unaligned.run.to_dict(),reference_run) == 0


# Check if the md5 checksum is missing in the file
with pytest.raises(Exception):
unaligned = Unaligned('sample_bad')
Expand All @@ -94,4 +97,35 @@ def test_unaligned():
with pytest.raises(Exception):
unaligned = Unaligned('sample_bad3')

# Cannot create submission error
with pytest.raises(Exception):
unaligned = Unaligned('tests')
# Name error
with pytest.raises(Exception):
unaligned = Unaligned('^*#')

assert unaligned.status == 'NEW'

assert unaligned.files == unaligned.run.files

assert unaligned.local_validate(EgaEnums()) is None

unaligned.record_object_status('none', True, "test", "test")

assert os.path.isfile(os.path.join(os.getcwd(), 'ssample_y/.status')) == False

unaligned.restore_latest_object_status('none')

assert os.path.isfile(os.path.join(os.getcwd(), 'ssample_y/.status')) == False

unaligned.record_object_status('sample', True, "test", "test")

assert os.path.isfile(os.path.join(os.getcwd(), 'ssample_y/.status/sample.log')) == True

unaligned.restore_latest_object_status('sample')

assert os.path.isfile(os.path.join(os.getcwd(), 'ssample_y/.status')) == False

shutil.rmtree(os.path.join(os.getcwd(), 'ssample_y/.status'))

os.chdir(initial_directory)
16 changes: 14 additions & 2 deletions tests/submission/test_variation.py
@@ -1,7 +1,7 @@
import pytest
import os
from egasub.submission.submittable import Variation
from egasub.ega.entities import Sample, \
from egasub.ega.entities import Sample, EgaEnums, \
Analysis as EAnalysis
from egasub import __version__ as ver

Expand Down Expand Up @@ -97,4 +97,16 @@ def test_variation():
with pytest.raises(Exception):
variation = Variation('sample_bad_99')

os.chdir(initial_directory)

# No /
with pytest.raises(Exception):
variation = Variation('///')

assert variation.status == 'NEW'

assert variation.files == variation.analysis.files

variation.local_validate(EgaEnums())

os.chdir(initial_directory)

10 changes: 5 additions & 5 deletions tests/test_ega_enums.py
@@ -1,5 +1,5 @@
from egasub.ega.entities.ega_enums import EgaEnums

def test_load_enums():
e = EgaEnums()
assert len(e.lookup("analysis_types")) == 3
from egasub.ega.entities.ega_enums import EgaEnums

def test_load_enums():
e = EgaEnums()
assert isinstance(e.lookup("analysis_types"), list)
1 change: 0 additions & 1 deletion tests/test_init_submission_dir.py
@@ -1,4 +1,3 @@

from egasub.submission.init_submission_dir import init_submission_dir
import pytest

Expand Down
7 changes: 0 additions & 7 deletions tests/test_submit.py

This file was deleted.

0 comments on commit d5ce295

Please sign in to comment.