Changeset View
Changeset View
Standalone View
Standalone View
swh/deposit/tests/api/test_deposit_atom.py
Show First 20 Lines • Show All 361 Lines • ▼ Show 20 Lines | def post_deposit_atom_entry_initial(self): | ||||
self.assertEqual(deposit.collection, self.collection) | self.assertEqual(deposit.collection, self.collection) | ||||
self.assertEqual(deposit.external_id, external_id) | self.assertEqual(deposit.external_id, external_id) | ||||
self.assertEqual(deposit.status, DEPOSIT_STATUS_DEPOSITED) | self.assertEqual(deposit.status, DEPOSIT_STATUS_DEPOSITED) | ||||
self.assertEqual(deposit.client, self.user) | self.assertEqual(deposit.client, self.user) | ||||
# one associated request to a deposit | # one associated request to a deposit | ||||
deposit_request = DepositRequest.objects.get(deposit=deposit) | deposit_request = DepositRequest.objects.get(deposit=deposit) | ||||
self.assertIsNotNone(deposit_request.metadata) | self.assertIsNotNone(deposit_request.metadata) | ||||
self.assertEquals( | |||||
deposit_request.raw_metadata, atom_entry_data.decode('utf-8')) | |||||
self.assertFalse(bool(deposit_request.archive)) | self.assertFalse(bool(deposit_request.archive)) | ||||
@istest | @istest | ||||
def post_deposit_atom_entry_with_codemeta(self): | def post_deposit_atom_entry_with_codemeta(self): | ||||
"""Posting an initial atom entry should return 201 with deposit receipt | """Posting an initial atom entry should return 201 with deposit receipt | ||||
""" | """ | ||||
# given | # given | ||||
Show All 24 Lines | def post_deposit_atom_entry_with_codemeta(self): | ||||
self.assertEqual(deposit.collection, self.collection) | self.assertEqual(deposit.collection, self.collection) | ||||
self.assertEqual(deposit.external_id, external_id) | self.assertEqual(deposit.external_id, external_id) | ||||
self.assertEqual(deposit.status, DEPOSIT_STATUS_DEPOSITED) | self.assertEqual(deposit.status, DEPOSIT_STATUS_DEPOSITED) | ||||
self.assertEqual(deposit.client, self.user) | self.assertEqual(deposit.client, self.user) | ||||
# one associated request to a deposit | # one associated request to a deposit | ||||
deposit_request = DepositRequest.objects.get(deposit=deposit) | deposit_request = DepositRequest.objects.get(deposit=deposit) | ||||
self.assertIsNotNone(deposit_request.metadata) | self.assertIsNotNone(deposit_request.metadata) | ||||
self.assertEquals( | |||||
deposit_request.raw_metadata, atom_entry_data.decode('utf-8')) | |||||
self.assertFalse(bool(deposit_request.archive)) | self.assertFalse(bool(deposit_request.archive)) | ||||
@istest | @istest | ||||
def test_post_deposit_atom_entry_tei(self): | def test_post_deposit_atom_entry_tei(self): | ||||
"""Posting initial atom entry as TEI should return 201 with receipt | """Posting initial atom entry as TEI should return 201 with receipt | ||||
""" | """ | ||||
Show All 22 Lines | def test_post_deposit_atom_entry_tei(self): | ||||
self.assertEqual(deposit.collection, self.collection) | self.assertEqual(deposit.collection, self.collection) | ||||
self.assertEqual(deposit.external_id, external_id) | self.assertEqual(deposit.external_id, external_id) | ||||
self.assertEqual(deposit.status, DEPOSIT_STATUS_DEPOSITED) | self.assertEqual(deposit.status, DEPOSIT_STATUS_DEPOSITED) | ||||
self.assertEqual(deposit.client, self.user) | self.assertEqual(deposit.client, self.user) | ||||
# one associated request to a deposit | # one associated request to a deposit | ||||
deposit_request = DepositRequest.objects.get(deposit=deposit) | deposit_request = DepositRequest.objects.get(deposit=deposit) | ||||
self.assertIsNotNone(deposit_request.metadata) | self.assertIsNotNone(deposit_request.metadata) | ||||
self.assertEquals( | |||||
deposit_request.raw_metadata, atom_entry_data.decode('utf-8')) | |||||
self.assertFalse(bool(deposit_request.archive)) | self.assertFalse(bool(deposit_request.archive)) | ||||
@istest | @istest | ||||
def post_deposit_atom_entry_multiple_steps(self): | def post_deposit_atom_entry_multiple_steps(self): | ||||
"""After initial deposit, updating a deposit should return a 201 | """After initial deposit, updating a deposit should return a 201 | ||||
""" | """ | ||||
# given | # given | ||||
▲ Show 20 Lines • Show All 47 Lines • ▼ Show 20 Lines | def post_deposit_atom_entry_multiple_steps(self): | ||||
self.assertEqual(deposit.collection, self.collection) | self.assertEqual(deposit.collection, self.collection) | ||||
self.assertEqual(deposit.external_id, external_id) | self.assertEqual(deposit.external_id, external_id) | ||||
self.assertEqual(deposit.status, DEPOSIT_STATUS_DEPOSITED) | self.assertEqual(deposit.status, DEPOSIT_STATUS_DEPOSITED) | ||||
self.assertEqual(deposit.client, self.user) | self.assertEqual(deposit.client, self.user) | ||||
self.assertEqual(len(Deposit.objects.all()), 1) | self.assertEqual(len(Deposit.objects.all()), 1) | ||||
# now 2 associated requests to a same deposit | # now 2 associated requests to a same deposit | ||||
deposit_requests = DepositRequest.objects.filter(deposit=deposit) | deposit_requests = DepositRequest.objects.filter( | ||||
deposit=deposit).order_by('id') | |||||
self.assertEqual(len(deposit_requests), 2) | self.assertEqual(len(deposit_requests), 2) | ||||
for deposit_request in deposit_requests: | expected_meta = [ | ||||
{ | |||||
'metadata': parse_xml(self.atom_entry_data1), | |||||
'raw_metadata': self.atom_entry_data1.decode('utf-8'), | |||||
}, | |||||
{ | |||||
'metadata': parse_xml(atom_entry_data), | |||||
'raw_metadata': atom_entry_data.decode('utf-8'), | |||||
} | |||||
] | |||||
for i, deposit_request in enumerate(deposit_requests): | |||||
actual_metadata = deposit_request.metadata | actual_metadata = deposit_request.metadata | ||||
self.assertIsNotNone(actual_metadata) | self.assertEquals(actual_metadata, | ||||
expected_meta[i]['metadata']) | |||||
self.assertEquals(deposit_request.raw_metadata, | |||||
expected_meta[i]['raw_metadata']) | |||||
self.assertFalse(bool(deposit_request.archive)) | self.assertFalse(bool(deposit_request.archive)) |