11import sys
2- from time import sleep
32import unittest
43
54import logging
87# local modules
98from dataverse .study import Study
109from dataverse .connection import Connection
11- from dataverse .example . config import DEFAULT_USERNAME , DEFAULT_HOST , DEFAULT_PASSWORD
10+ from dataverse .settings import DEFAULT_TOKEN , DEFAULT_HOST
1211from dataverse .test .config import PICS_OF_CATS_STUDY , ATOM_STUDY
1312from dataverse import utils
1413
@@ -46,15 +45,13 @@ def test_get_elements(self):
4645
4746 def test_format_term (self ):
4847 # A term not in the replacement dict
49- term = 'title'
50- formatted_term = utils .format_term (term )
51- self .assertEqual (formatted_term , 'dcterms_title' )
48+ formatted_term = utils .format_term ('title' , namespace = 'dcterms' )
49+ self .assertEqual (formatted_term , '{http://purl.org/dc/terms/}title' )
5250
5351 def test_format_term_replace (self ):
5452 # A term in the replacement dict
55- term = 'id'
56- formatted_term = utils .format_term (term )
57- self .assertEqual (formatted_term , 'dcterms_identifier' )
53+ formatted_term = utils .format_term ('id' , namespace = 'dcterms' )
54+ self .assertEqual (formatted_term , '{http://purl.org/dc/terms/}identifier' )
5855
5956
6057class TestStudy (unittest .TestCase ):
@@ -72,6 +69,7 @@ def test_init(self):
7269 tag = 'publisher'
7370 ).text
7471 self .assertEqual (title , 'My Study' )
72+ self .assertEqual (title , study .title )
7573 self .assertEqual (publisher , 'Mr. Pub Lisher' )
7674
7775 def test_init_from_xml (self ):
@@ -91,20 +89,24 @@ def test_init_from_xml(self):
9189
9290
9391class TestStudyOperations (unittest .TestCase ):
92+
9493 @classmethod
9594 def setUpClass (self ):
96-
9795 print "Connecting to DVN."
98- self .dvc = Connection (
99- username = DEFAULT_USERNAME ,
100- password = DEFAULT_PASSWORD ,
101- host = DEFAULT_HOST ,
102- disable_ssl = True
103- )
96+ self .dvc = Connection (DEFAULT_HOST , DEFAULT_TOKEN )
10497
10598 print "Getting Dataverse"
106- self .dv = self .dvc .get_dataverses ()[0 ]
107- self .dv .is_released
99+ dataverses = self .dvc .get_dataverses ()
100+ if not dataverses :
101+ raise utils .DataverseException (
102+ 'You must have a published Dataverse to run these tests.'
103+ )
104+
105+ self .dv = dataverses [0 ]
106+ if not self .dv .is_released :
107+ raise utils .DataverseException (
108+ 'You must publish "{0}" to run these tests.' .format (self .dv .title )
109+ )
108110
109111 print "Removing any existing studies."
110112 studies = self .dv .get_studies ()
@@ -114,9 +116,9 @@ def setUpClass(self):
114116 print 'Dataverse emptied.'
115117
116118 def setUp (self ):
117- #runs before each test method
119+ # runs before each test method
118120
119- #create a study for each test
121+ # create a study for each test
120122 s = Study (** PICS_OF_CATS_STUDY )
121123 self .dv .add_study (s )
122124 doi = s .doi
@@ -138,17 +140,15 @@ def test_create_study_from_xml(self):
138140 self .dv .delete_study (retrieved_study )
139141
140142 def test_add_files (self ):
141- self .s .add_files (['test_dvn.py' , 'config.py' ])
142- sleep (3 ) #wait for ingest
143+ self .s .add_files (['test_dataverse.py' , 'config.py' ])
143144 actual_files = [f .name for f in self .s .get_files ()]
144145
145- self .assertIn ('test_dvn .py' , actual_files )
146+ self .assertIn ('test_dataverse .py' , actual_files )
146147 self .assertIn ('config.py' , actual_files )
147148
148149 def test_upload_file (self ):
149150 self .s .upload_file ('file.txt' , 'This is a simple text file!' )
150151 self .s .upload_file ('file2.txt' , 'This is the second simple text file!' )
151- sleep (3 ) #wait for ingest
152152 actual_files = [f .name for f in self .s .get_files ()]
153153
154154 self .assertIn ('file.txt' , actual_files )
@@ -191,7 +191,8 @@ def test_delete_a_study(self):
191191 self .dv .delete_study (atomStudy )
192192 self .assertEqual (atomStudy .get_state (refresh = True ), 'DEACCESSIONED' )
193193 self .assertEqual (len (self .dv .get_studies ()), startingNumberOfStudies - 1 )
194-
194+
195+ @unittest .skip ('Released studies can no longer be deaccessioned via API' )
195196 def test_release_study (self ):
196197 self .assertTrue (self .s .get_state () == "DRAFT" )
197198 self .s .release ()
0 commit comments