Skip to content

Commit 5844d26

Browse files
committed
Switch to pytest-style asserts
1 parent 9c20ebf commit 5844d26

1 file changed

Lines changed: 63 additions & 63 deletions

File tree

dataverse/test/test_dataverse.py

Lines changed: 63 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import unittest
1+
import pytest
22

33
import httpretty
44

@@ -13,59 +13,65 @@
1313
logging.basicConfig(level=logging.ERROR)
1414

1515

16-
class TestUtils(unittest.TestCase):
16+
class TestUtils(object):
1717

1818
def test_get_element(self):
1919
with open(ATOM_DATASET) as f:
2020
entry = f.read()
21+
2122
# One value
2223
title = utils.get_element(entry, 'title', 'dcterms').text
23-
self.assertEqual(title, 'Roasting at Home')
24+
assert title == 'Roasting at Home'
25+
2426
# Two values
2527
creator = utils.get_element(entry, 'creator', 'dcterms').text
26-
self.assertEqual(creator, 'Peets, John')
28+
assert creator == 'Peets, John'
29+
2730
# No values
2831
nonsense = utils.get_element(entry, 'nonsense', 'booga')
29-
self.assertIsNone(nonsense)
32+
assert nonsense is None
3033

3134
def test_get_elements(self):
3235
with open(ATOM_DATASET) as f:
3336
entry = f.read()
37+
3438
# One value
3539
titles = utils.get_elements(entry, 'title', 'dcterms')
36-
self.assertEqual(len(titles), 1)
37-
self.assertEqual(titles[0].text, 'Roasting at Home')
40+
assert len(titles) == 1
41+
assert titles[0].text == 'Roasting at Home'
42+
3843
# Two values
3944
creators = utils.get_elements(entry, 'creator', 'dcterms')
40-
self.assertEqual(len(creators), 2)
41-
self.assertEqual(creators[0].text, 'Peets, John')
42-
self.assertEqual(creators[1].text, 'Stumptown, Jane')
45+
assert len(creators) == 2
46+
assert creators[0].text == 'Peets, John'
47+
assert creators[1].text == 'Stumptown, Jane'
48+
4349
# No values
4450
nonsense = utils.get_elements(entry, 'nonsense', 'booga')
45-
self.assertEqual(nonsense, [])
51+
assert nonsense == []
4652

4753
def test_format_term(self):
4854
# A term not in the replacement dict
4955
formatted_term = utils.format_term('title', namespace='dcterms')
50-
self.assertEqual(formatted_term, '{http://purl.org/dc/terms/}title')
56+
assert formatted_term == '{http://purl.org/dc/terms/}title'
5157

5258
def test_format_term_replace(self):
5359
# A term in the replacement dict
5460
formatted_term = utils.format_term('id', namespace='dcterms')
55-
self.assertEqual(formatted_term, '{http://purl.org/dc/terms/}identifier')
61+
assert formatted_term == '{http://purl.org/dc/terms/}identifier'
5662

5763

58-
class TestConnection(unittest.TestCase):
64+
class TestConnection(object):
5965

6066
def test_connect(self):
6167
c = Connection(TEST_HOST, TEST_TOKEN)
6268

63-
self.assertEqual(c.host, TEST_HOST)
64-
self.assertEqual(c.token, TEST_TOKEN)
65-
self.assertTrue(c.service_document)
69+
assert c.host == TEST_HOST
70+
assert c.token == TEST_TOKEN
71+
assert c.service_document
6672

6773
def test_connect_unauthorized(self):
68-
with self.assertRaises(exceptions.UnauthorizedError):
74+
with pytest.raises(exceptions.UnauthorizedError):
6975
Connection(TEST_HOST, 'wrong-token')
7076

7177
@httpretty.activate
@@ -76,11 +82,11 @@ def test_connect_unknown_failure(self):
7682
status=400,
7783
)
7884

79-
with self.assertRaises(exceptions.ConnectionError):
85+
with pytest.raises(exceptions.ConnectionError):
8086
Connection(TEST_HOST, TEST_TOKEN)
8187

8288

83-
class TestDataset(unittest.TestCase):
89+
class TestDataset(object):
8490

8591
def test_init(self):
8692
dataset = Dataset(title='My Dataset', publisher='Mr. Pub Lisher')
@@ -94,9 +100,9 @@ def test_init(self):
94100
namespace='dcterms',
95101
tag='publisher'
96102
).text
97-
self.assertEqual(title, 'My Dataset')
98-
self.assertEqual(title, dataset.title)
99-
self.assertEqual(publisher, 'Mr. Pub Lisher')
103+
assert title == 'My Dataset'
104+
assert title == dataset.title
105+
assert publisher == 'Mr. Pub Lisher'
100106

101107
def test_init_from_xml(self):
102108
dataset = Dataset.from_xml_file(ATOM_DATASET)
@@ -110,45 +116,41 @@ def test_init_from_xml(self):
110116
namespace='dcterms',
111117
tag='rights'
112118
).text
113-
self.assertEqual(title, 'Roasting at Home')
114-
self.assertEqual(publisher, 'Creative Commons CC-BY 3.0 (unported) http://creativecommons.org/licenses/by/3.0/')
119+
assert title == 'Roasting at Home'
120+
assert publisher == 'Creative Commons CC-BY 3.0 (unported) http://creativecommons.org/licenses/by/3.0/'
115121

116122

117-
class TestDatasetOperations(unittest.TestCase):
123+
class TestDatasetOperations(object):
118124

119125
@classmethod
120-
def setUpClass(self):
126+
def setup_class(cls):
121127
print "Connecting to DVN."
122-
self.dvc = Connection(TEST_HOST, TEST_TOKEN)
128+
cls.dvc = Connection(TEST_HOST, TEST_TOKEN)
123129

124130
print "Getting Dataverse"
125-
dataverses = self.dvc.get_dataverses()
131+
dataverses = cls.dvc.get_dataverses()
126132
if not dataverses:
127133
raise exceptions.DataverseError(
128134
'You must have a Dataverse to run these tests.'
129135
)
130136

131-
self.dv = dataverses[0]
137+
cls.dv = dataverses[0]
132138

133139
print "Removing any existing datasets."
134-
datasets = self.dv.get_datasets()
140+
datasets = cls.dv.get_datasets()
135141
for dataset in datasets:
136142
if dataset.get_state() != 'DEACCESSIONED':
137-
self.dv.delete_dataset(dataset)
143+
cls.dv.delete_dataset(dataset)
138144
print 'Dataverse emptied.'
139145

140-
def setUp(self):
141-
# runs before each test method
146+
def setup_method(self, method):
142147

143148
# create a dataset for each test
144149
s = Dataset(**PICS_OF_CATS_DATASET)
145150
self.dv.add_dataset(s)
146-
doi = s.doi
147-
self.s = self.dv.get_dataset_by_doi(doi)
148-
self.assertEqual(doi, self.s.doi)
149-
return
151+
self.s = self.dv.get_dataset_by_doi(s.doi)
150152

151-
def tearDown(self):
153+
def teardown_method(self, method):
152154
try:
153155
self.dv.delete_dataset(self.s)
154156
finally:
@@ -158,71 +160,69 @@ def test_create_dataset_from_xml(self):
158160
new_dataset = Dataset.from_xml_file(ATOM_DATASET)
159161
self.dv.add_dataset(new_dataset)
160162
retrieved_dataset = self.dv.get_dataset_by_title("Roasting at Home")
161-
self.assertTrue(retrieved_dataset)
163+
assert retrieved_dataset
162164
self.dv.delete_dataset(retrieved_dataset)
163165

164166
def test_add_files(self):
165167
self.s.add_files(EXAMPLE_FILES)
166168
actual_files = [f.name for f in self.s.get_files()]
167169

168-
self.assertIn('__init__.py', actual_files)
169-
self.assertIn('config.py', actual_files)
170+
assert '__init__.py' in actual_files
171+
assert 'config.py' in actual_files
170172

171173
def test_upload_file(self):
172174
self.s.upload_file('file.txt', 'This is a simple text file!')
173175
self.s.upload_file('file2.txt', 'This is the second simple text file!')
174176
actual_files = [f.name for f in self.s.get_files()]
175177

176-
self.assertIn('file.txt', actual_files)
177-
self.assertIn('file2.txt', actual_files)
178+
assert 'file.txt' in actual_files
179+
assert 'file2.txt' in actual_files
178180

179181
def test_display_atom_entry(self):
180182
# this just tests we can get an entry back, but does
181183
# not do anything with that xml yet. however, we do use get_entry
182184
# in other methods so this test case is probably covered
183-
self.assertTrue(self.s.get_entry())
185+
assert self.s.get_entry()
184186

185187
def test_display_dataset_statement(self):
186188
# this just tests we can get an entry back, but does
187189
# not do anything with that xml yet. however, we do use get_statement
188190
# in other methods so this test case is probably covered
189-
self.assertTrue(self.s.get_statement())
191+
assert self.s.get_statement()
190192

191193
def test_delete_a_file(self):
192194
self.s.upload_file('cat.jpg', b'Whatever a cat looks like goes here.')
193195

194-
#add file and confirm
196+
# Add file and confirm
195197
files = self.s.get_files()
196-
cat_file = [f for f in files if f.name == 'cat.jpg']
197-
self.assertTrue(len(cat_file) == 1)
198+
assert len(files) == 1
199+
assert files[0].name == 'cat.jpg'
198200

199-
#delete file and confirm
200-
self.s.delete_file(cat_file[0])
201+
# Delete file and confirm
202+
self.s.delete_file(files[0])
201203
files = self.s.get_files()
202-
cat_file = [f for f in files if f.name == "cat.jpg"]
203-
self.assertTrue(len(cat_file) == 0)
204+
assert not files
204205

205206
def test_delete_a_dataset(self):
206207
xmlDataset = Dataset.from_xml_file(ATOM_DATASET)
207208
self.dv.add_dataset(xmlDataset)
208209
atomDataset = self.dv.get_dataset_by_title("Roasting at Home")
209-
self.assertTrue(atomDataset)
210-
211210
num_datasets = len(self.dv.get_datasets())
212-
self.assertTrue(num_datasets > 0)
211+
212+
assert num_datasets > 0
213213
self.dv.delete_dataset(atomDataset)
214-
self.assertEqual(atomDataset.get_state(refresh=True), 'DEACCESSIONED')
215-
self.assertEqual(len(self.dv.get_datasets()), num_datasets - 1)
214+
assert atomDataset.get_state(refresh=True) == 'DEACCESSIONED'
215+
assert len(self.dv.get_datasets()) == num_datasets - 1
216216

217-
@unittest.skip('Published datasets can no longer be deaccessioned via API')
217+
@pytest.mark.skipif(True, reason='Published datasets can no longer be deaccessioned via API')
218218
def test_publish_dataset(self):
219-
self.assertTrue(self.s.get_state() == "DRAFT")
219+
assert self.s.get_state() == "DRAFT"
220220
self.s.publish()
221-
self.assertTrue(self.s.get_state() == "PUBLISHED")
221+
assert self.s.get_state() == "PUBLISHED"
222222
self.dv.delete_dataset(self.s)
223-
self.assertTrue(self.s.get_state(refresh=True) == "DEACCESSIONED")
223+
assert self.s.get_state(refresh=True) == "DEACCESSIONED"
224224

225225

226226
if __name__ == '__main__':
227-
unittest.main()
227+
pytest.main()
228228

0 commit comments

Comments
 (0)