marco@16: from . import TestController marco@16: marco@16: from sword2 import SDCollection, ServiceDocument marco@16: from sword2.compatible_libs import json marco@16: marco@16: class TestSDCollection(TestController): marco@16: def test_01_blank_init(self): marco@16: c = SDCollection() marco@16: assert c.title == None marco@16: assert c.href == None marco@16: marco@16: def test_02_init(self): marco@16: c = SDCollection(title="My test collection", href="http://example.org") marco@16: assert c.title == "My test collection" marco@16: assert c.href == "http://example.org" marco@16: marco@16: def test_03_init_and_update(self): marco@16: c = SDCollection(title="My test collection", href="http://example.org") marco@16: assert c.title == "My test collection" marco@16: assert c.href == "http://example.org" marco@16: c.title = "Altered Title" marco@16: assert c.title == "Altered Title" marco@16: marco@16: def test_04_init_and_update_json_test(self): marco@16: c = SDCollection(title="My test collection", href="http://example.org") marco@16: assert c.title == "My test collection" marco@16: assert c.href == "http://example.org" marco@16: c.title = "Altered Title" marco@16: assert c.title == "Altered Title" marco@16: j = c.to_json() marco@16: j_data = json.loads(j) marco@16: assert j_data['title'] == "Altered Title" marco@16: assert j_data['href'] == "http://example.org" marco@16: assert j_data['accept'] == [] marco@16: marco@16: short_service_doc = ''' marco@16: marco@16: marco@16: 2.0 marco@16: 16777216 marco@16: marco@16: marco@16: Main Site marco@16: marco@16: marco@16: Collection 43 marco@16: */* marco@16: */* marco@16: Collection Policy marco@16: Collection Description marco@16: false marco@16: Treatment description marco@16: http://purl.org/net/sword/package/SimpleZip marco@16: http://purl.org/net/sword/package/METSDSpaceSIP marco@16: http://swordapp.org/sd-iri/e4 marco@16: marco@16: marco@16: ''' marco@16: marco@16: long_service_doc = ''' marco@16: marco@16: marco@16: 2.0 marco@16: 16777216 marco@16: marco@16: marco@16: Main Site marco@16: marco@16: marco@16: Collection 43 marco@16: */* marco@16: */* marco@16: Collection Policy marco@16: Collection Description marco@16: false marco@16: Treatment description marco@16: http://purl.org/net/sword/package/SimpleZip marco@16: http://purl.org/net/sword/package/METSDSpaceSIP marco@16: http://swordapp.org/sd-iri/e4 marco@16: marco@16: marco@16: marco@16: Sub-site marco@16: marco@16: marco@16: Collection 44 marco@16: */* marco@16: */* marco@16: Collection Policy marco@16: Collection Description marco@16: true marco@16: Treatment description marco@16: http://purl.org/net/sword/package/SimpleZip marco@16: http://swordapp.org/sd-iri/e5 marco@16: http://swordapp.org/sd-iri/e6 marco@16: http://swordapp.org/sd-iri/e7 marco@16: http://swordapp.org/sd-iri/e8 marco@16: marco@16: marco@16: Collection 46 marco@16: application/zip marco@16: application/zip marco@16: Only Theses marco@16: Theses dropbox marco@16: true marco@16: Treatment description marco@16: http://purl.org/net/sword/package/SimpleZip marco@16: marco@16: marco@16: ''' marco@16: marco@16: class TestServiceDocument(TestController): marco@16: def test_01_blank_init(self): marco@16: s = ServiceDocument() marco@16: assert s.version == None marco@16: assert s.parsed == False marco@16: assert s.valid == False # Invalid document as should be blank marco@16: marco@16: def test_02_init_and_load_simple(self): marco@16: s = ServiceDocument() marco@16: s.load_document(short_service_doc) marco@16: assert s.version == "2.0" marco@16: assert s.valid == True marco@16: assert s.maxUploadSize == 16777216 # check int() marco@16: marco@16: def test_03_load_on_init(self): marco@16: s = ServiceDocument(xml_response = short_service_doc) marco@16: assert s.version == "2.0" marco@16: assert s.valid == True marco@16: assert s.maxUploadSize == 16777216 # check int() marco@16: marco@16: def test_04_init_and_load_long(self): marco@16: s = ServiceDocument() marco@16: s.load_document(long_service_doc) marco@16: assert s.version == "2.0" marco@16: assert s.valid == True marco@16: assert s.maxUploadSize == 16777216 # check int() marco@16: marco@16: def test_05_long_load_on_init(self): marco@16: s = ServiceDocument(xml_response = long_service_doc) marco@16: assert s.version == "2.0" marco@16: assert s.valid == True marco@16: assert s.maxUploadSize == 16777216 # check int() marco@16: marco@16: def test_06_workspaces_short(self): marco@16: s = ServiceDocument(xml_response = short_service_doc) marco@16: assert len(s.workspaces) == 1 marco@16: assert s.workspaces[0][0] == "Main Site" marco@16: assert len(s.workspaces[0][1]) == 1 marco@16: marco@16: def test_07_workspaces_long(self): marco@16: s = ServiceDocument(xml_response = long_service_doc) marco@16: assert len(s.workspaces) == 2 marco@16: assert s.workspaces[0][0] == "Main Site" marco@16: assert s.workspaces[1][0] == "Sub-site" marco@16: assert len(s.workspaces[1][1]) == 2 marco@16: marco@16: def test_08_collection_information_long(self): marco@16: s = ServiceDocument(xml_response = long_service_doc) marco@16: sub_workspace = s.workspaces[1] marco@16: assert sub_workspace[0] == "Sub-site" marco@16: sub_collections = sub_workspace[1] marco@16: for c in sub_collections: marco@16: if c.title == "Collection 44": marco@16: assert c.href == "http://swordapp.org/col-iri/44" marco@16: assert len(c.service) == 4 marco@16: assert c.mediation == True marco@16: if c.href == "http://swordapp.org/col-iri/46": marco@16: assert c.title == "Collection 46" marco@16: assert c.service == None marco@16: assert c.collectionPolicy == "Only Theses" marco@16: marco@16: def test_09_accept_information_long(self): marco@16: s = ServiceDocument(xml_response = long_service_doc) marco@16: sub_workspace = s.workspaces[1] marco@16: assert sub_workspace[0] == "Sub-site" marco@16: sub_collections = sub_workspace[1] marco@16: for c in sub_collections: marco@16: if c.title == "Collection 44": marco@16: assert "*/*" in c.accept marco@16: if c.href == "http://swordapp.org/col-iri/46": marco@16: assert "application/zip" in c.accept marco@16: assert "http://purl.org/net/sword/package/SimpleZip" in c.acceptPackaging marco@16: