Skip to content

Commit d8d520b

Browse files
committed
Merge remote-tracking branch 'upstream/master'
2 parents 7b41701 + 25cda24 commit d8d520b

File tree

5 files changed

+91
-39
lines changed

5 files changed

+91
-39
lines changed

‎.gitignore‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
.cache/
2+
build/
3+
dist/
4+
sword2.egg-info/
5+
*.pyc
6+
*.py~
7+

‎sword2/connection.py‎

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1644,8 +1644,6 @@ def get_deposit_receipt(self, edit_iri):
16441644
defget_ore_sword_statement(self, sword_statement_iri):
16451645
"""
16461646
Getting the Sword Statement.
1647-
1648-
IN PROGRESS - USE AT OWN RISK.... see `sword2.Sword_Statement`.
16491647
"""
16501648
# get the statement first
16511649
conn_l.debug("Trying to GET the ORE Sword Statement at %s."%sword_statement_iri)
@@ -1664,8 +1662,6 @@ def get_ore_sword_statement(self, sword_statement_iri):
16641662
defget_atom_sword_statement(self, sword_statement_iri):
16651663
"""
16661664
Getting the Sword Statement.
1667-
1668-
IN PROGRESS - USE AT OWN RISK.... see `sword2.Sword_Statement`.
16691665
"""
16701666
# get the statement first
16711667
conn_l.debug("Trying to GET the ATOM Sword Statement at %s."%sword_statement_iri)
@@ -1781,7 +1777,23 @@ def __init__(self, resp, content):
17811777
# return self._return_error_or_exception(PackagingFormatNotAvailable, resp, content)
17821778
else:
17831779
returnself._handle_error_response(resp, content)
1784-
1780+
1781+
defreplace_file(self, file_edit_media, payload, mimetype, packaging=None, on_behalf_of=None, metadata_relevant=False):
1782+
"""
1783+
API Sugar for replacing any given file (such as that retrieved from a feed of the media resource)
1784+
This supports all the headers required by 6.11 of the spec
1785+
"""
1786+
returnself._make_request(file_edit_media, payload=payload, mimetype=mimetype, filename="unnamed",
1787+
packaging=packaging, on_behalf_of=on_behalf_of, metadata_relevant=metadata_relevant,
1788+
method="PUT")
1789+
1790+
defdelete_file(self, file_edit_media, on_behalf_of=None):
1791+
"""
1792+
API sugar for deleting a given file (such as that retrieved from a feed of the media resource).
1793+
This supports all the headers required by 6.11 of the spec
1794+
"""
1795+
returnself._make_request(file_edit_media, on_behalf_of=on_behalf_of, method="DELETE")
1796+
17851797
def_normalise_mime(self, mime):
17861798
ifmimeisNone:
17871799
returnNone

‎sword2/error_document.py‎

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
fromdeposit_receiptimportDeposit_Receipt
88
fromserver_errorsimportSWORD2ERRORSBYIRI, get_error
99

10+
fromsword2_loggingimportlogging
11+
ed_l=logging.getLogger(__name__)
12+
1013
classError_Document(Deposit_Receipt):
1114
"""
1215
Example Error document:
@@ -47,22 +50,26 @@ class Error_Document(Deposit_Receipt):
4750
The server SHOULD specify that the Content-Type of the is text/xml or application/xml.
4851
"""
4952
def__init__(self, xml_deposit_receipt=None, code=None, resp=None):
53+
ed_l.debug("Constructing Error Document Representation")
5054
ifxml_deposit_receipt:
51-
super(Error_Document, self).__init__(xml_deposit_receipt)
55+
super(Error_Document, self).__init__(xml_deposit_receipt=xml_deposit_receipt, code=code)
5256
else:
53-
super(Error_Document, self).__init__("""<?xml version="1.0" encoding="utf-8"?>
54-
<sword:error xmlns:sword="http://purl.org/net/sword/"/>""")
57+
super(Error_Document, self).__init__(code=code)
5558
self.error_href=None
5659
self.error_info=None
57-
self.verboseDescription=None
60+
self.verbose_description=None
5861
self.content=None# for parity with the ContentWrapper
59-
self.code=code
6062
self.response_headers=resp
6163
self._characterise_error()
6264

6365
def_characterise_error(self):
6466
if"sword_verboseDescription"inself.metadata.keys():
65-
self.verboseDescription=self.metadata['sword_verboseDescription']
66-
if"href"inself.dom.attrib.keys():
67-
self.error_href=self.dom.attrib['href']
68-
self.error_info=get_error(self.error_href, self.code)
67+
self.verbose_description=self.metadata['sword_verboseDescription']
68+
69+
ifself.dom!=None:
70+
ed_l.debug("Error response contains document content")
71+
if"href"inself.dom.attrib.keys():
72+
self.error_href=self.dom.attrib['href']
73+
self.error_info=get_error(self.error_href, self.code)
74+
else:
75+
ed_l.debug("Error response does NOT contain document content")

‎sword2_logging.conf‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
[loggers]
2+
keys=root
3+
4+
[handlers]
5+
keys=consoleHandler
6+
7+
[formatters]
8+
keys=basicFormatting
9+
10+
[logger_root]
11+
level=DEBUG
12+
handlers=consoleHandler
13+
14+
[handler_consoleHandler]
15+
class=StreamHandler
16+
level=DEBUG
17+
formatter=basicFormatting
18+
args=(sys.stdout,)
19+
20+
[formatter_basicFormatting]
21+
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s

‎tests/spec/test_spec.py‎

Lines changed: 30 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -554,7 +554,8 @@ def test_25_basic_add_content_to_resource_package(self):
554554
payload=pkg,
555555
mimetype=PACKAGE_MIME,
556556
filename="example.zip",
557-
packaging='http://purl.org/net/sword/package/SimpleZip')
557+
packaging='http://purl.org/net/sword/package/SimpleZip',
558+
in_progress=True)
558559
receipt=conn.get_deposit_receipt(receipt.location)
559560

560561
withopen(PACKAGE) aspkg:
@@ -575,7 +576,8 @@ def test_26_advanced_add_content_to_resource_package(self):
575576
payload=pkg,
576577
mimetype=PACKAGE_MIME,
577578
filename="example.zip",
578-
packaging='http://purl.org/net/sword/package/SimpleZip')
579+
packaging='http://purl.org/net/sword/package/SimpleZip',
580+
in_progress=True)
579581
receipt=conn.get_deposit_receipt(receipt.location)
580582

581583
withopen(PACKAGE) aspkg:
@@ -593,21 +595,22 @@ def test_27_basic_add_metadata(self):
593595
conn.get_service_document()
594596
col=conn.sd.workspaces[0][1][0]
595597
e=Entry(title="Multipart deposit", id="asidjasidj", dcterms_abstract="abstract", dcterms_identifier="http://whatever/")
596-
withopen(PACKAGE) aspkg:
597-
receipt=conn.create(col_iri=col.href,
598-
metadata_entry=e,
599-
payload=pkg,
600-
mimetype=PACKAGE_MIME,
601-
filename="example.zip",
602-
packaging='http://purl.org/net/sword/package/SimpleZip')
598+
#with open(PACKAGE) as pkg:
599+
receipt=conn.create(col_iri=col.href,
600+
metadata_entry=e,
601+
#payload=pkg,
602+
#mimetype=PACKAGE_MIME,
603+
#filename="example.zip",
604+
#packaging = 'http://purl.org/net/sword/package/SimpleZip',
605+
in_progress=True)
603606

604607
# ensure that we have a receipt (the server may not give us one
605608
# by default)
606609
receipt=conn.get_deposit_receipt(receipt.location)
607610

608611
ne=Entry(title="Multipart deposit", id="asidjasidj", dcterms_identifier="http://another/",
609612
dcterms_creator="Me!", dcterms_rights="CC0")
610-
new_receipt=conn.append(dr=receipt, metadata_entry=ne)
613+
new_receipt=conn.append(dr=receipt, metadata_entry=ne)
611614

612615
assertnew_receipt.code==200
613616

@@ -619,10 +622,11 @@ def test_28_advanced_add_metadata(self):
619622
withopen(PACKAGE) aspkg:
620623
receipt=conn.create(col_iri=col.href,
621624
metadata_entry=e,
622-
payload=pkg,
623-
mimetype=PACKAGE_MIME,
624-
filename="example.zip",
625-
packaging='http://purl.org/net/sword/package/SimpleZip')
625+
#payload=pkg,
626+
#mimetype=PACKAGE_MIME,
627+
#filename="example.zip",
628+
#packaging = 'http://purl.org/net/sword/package/SimpleZip',
629+
in_progress=True)
626630

627631
# ensure that we have a receipt (the server may not give us one
628632
# by default)
@@ -707,13 +711,14 @@ def test_31_delete_container(self):
707711
conn.get_service_document()
708712
col=conn.sd.workspaces[0][1][0]
709713
e=Entry(title="Multipart deposit", id="asidjasidj", dcterms_abstract="abstract", dcterms_identifier="http://whatever/")
710-
withopen(PACKAGE) aspkg:
711-
receipt=conn.create(col_iri=col.href,
712-
metadata_entry=e,
713-
payload=pkg,
714-
mimetype=PACKAGE_MIME,
715-
filename="example.zip",
716-
packaging='http://purl.org/net/sword/package/SimpleZip')
714+
#with open(PACKAGE) as pkg:
715+
receipt=conn.create(col_iri=col.href,
716+
metadata_entry=e,
717+
#payload=pkg,
718+
#mimetype=PACKAGE_MIME,
719+
#filename="example.zip",
720+
#packaging = 'http://purl.org/net/sword/package/SimpleZip',
721+
in_progress=True)
717722

718723
# ensure that we have a receipt (the server may not give us one
719724
# by default)
@@ -730,7 +735,7 @@ def test_31_delete_container(self):
730735
another_receipt=conn.get_deposit_receipt(edit_iri)
731736

732737
# FIXME: this is the broken assert
733-
#assert another_receipt.code == 404
738+
assertanother_receipt.code==404
734739

735740
deftest_32_get_atom_statement(self):
736741
conn=Connection(SSS_URL, user_name=SSS_UN, user_pass=SSS_PW, on_behalf_of=SSS_OBO)
@@ -739,7 +744,7 @@ def test_32_get_atom_statement(self):
739744
e=Entry(title="Multipart deposit", id="asidjasidj", dcterms_abstract="abstract", dcterms_identifier="http://whatever/")
740745
withopen(PACKAGE) aspkg:
741746
receipt=conn.create(col_iri=col.href,
742-
metadata_entry=e,
747+
# metadata_entry = e,
743748
payload=pkg,
744749
mimetype=PACKAGE_MIME,
745750
filename="example.zip",
@@ -764,7 +769,7 @@ def test_33_get_ore_statement(self):
764769
e=Entry(title="Multipart deposit", id="asidjasidj", dcterms_abstract="abstract", dcterms_identifier="http://whatever/")
765770
withopen(PACKAGE) aspkg:
766771
receipt=conn.create(col_iri=col.href,
767-
metadata_entry=e,
772+
# metadata_entry = e,
768773
payload=pkg,
769774
mimetype=PACKAGE_MIME,
770775
filename="example.zip",
@@ -789,7 +794,7 @@ def test_34_complete_deposit(self):
789794
e=Entry(title="Foo", id="asidjasidj", dcterms_abstract="abstract", dcterms_title="my title")
790795
withopen(PACKAGE) aspkg:
791796
receipt=conn.create(col_iri=col.href,
792-
metadata_entry=e,
797+
# metadata_entry = e,
793798
payload=pkg,
794799
mimetype=PACKAGE_MIME,
795800
filename="example.zip",

0 commit comments

Comments
(0)