def test_get_capabilities_nocites(self): """ Check Get Capabilities latinLit data""" Repository = CTSCapitainsLocalResolver( ["./tests/testing_data/latinLit"] ) self.assertEqual( len(Repository.__getTextMetadata__(urn="urn:cts:latinLit:stoa0045.stoa008.perseus-lat2")[0]), 0, "Texts without citations were ignored" )
def test_text_resource(self): """ Test to get the text resource to perform other queries """ Repository = CTSCapitainsLocalResolver(["./tests/testing_data/farsiLit"]) text, metadata = Repository.__getText__("urn:cts:farsiLit:hafez.divan.perseus-eng1") self.assertEqual( len(text.citation), 4, "Object has a citation property of length 4" ) self.assertEqual( text.getTextualNode(Reference("1.1.1.1")).export(output=Mimetypes.PLAINTEXT), "Ho ! Saki, pass around and offer the bowl (of love for God) : ### ", "It should be possible to retrieve text" )
def test_get_shared_textgroup_cross_repo(self): """ Check Get Capabilities """ Repository = CTSCapitainsLocalResolver( [ "./tests/testing_data/farsiLit", "./tests/testing_data/latinLit2" ] ) self.assertIsNotNone( Repository.__getText__("urn:cts:latinLit:phi1294.phi002.perseus-lat2"), "We should find perseus-lat2" ) self.assertIsNotNone( Repository.__getText__("urn:cts:latinLit:phi1294.phi002.opp-lat2"), "We should find perseus-lat2" )
def test_pagination(self): self.assertEqual( CTSCapitainsLocalResolver.pagination(2, 30, 150), (30, 60, 2, 30), " Pagination should return Array limits " ) self.assertEqual( CTSCapitainsLocalResolver.pagination(4, 40, 150), (120, 150, 4, 30), " Pagination should return Array limits " ) self.assertEqual( CTSCapitainsLocalResolver.pagination(5, 40, 150), (120, 150, 4, 30), " Pagination should return Array limits " ) self.assertEqual( CTSCapitainsLocalResolver.pagination(5, 100, 150), (100, 150, 2, 50), " Pagination should give corrected page and correct count" ) self.assertEqual( CTSCapitainsLocalResolver.pagination(5, 110, 150), (40, 50, 5, 10), " Pagination should use default limit (10) when getting too much " )
def test_get_capabilities(self): """ Check Get Capabilities """ Repository = CTSCapitainsLocalResolver( ["./tests/testing_data/farsiLit"] ) self.assertEqual( len(Repository.__getTextMetadata__()[0]), 4, "General no filter works" ) self.assertEqual( len(Repository.__getTextMetadata__(category="edition")[0]), 2, "Type filter works" ) self.assertEqual( len(Repository.__getTextMetadata__(lang="ger")[0]), 1, "Filtering on language works" ) self.assertEqual( len(Repository.__getTextMetadata__(category="edition", lang="ger")[0]), 0, "Type filter + lang works" ) self.assertEqual( len(Repository.__getTextMetadata__(category="translation", lang="ger")[0]), 1, "Type filter + lang works" ) self.assertEqual( len(Repository.__getTextMetadata__(page=1, limit=2, pagination=True)[0]), 2, "Pagination works without other filters" ) self.assertEqual( len(Repository.__getTextMetadata__(page=2, limit=2, pagination=True)[0]), 2, "Pagination works without other filters at list end" ) self.assertEqual( len(Repository.__getTextMetadata__(urn="urn:cts:farsiLit")[0]), 3, "URN Filtering works" ) self.assertEqual( len(Repository.__getTextMetadata__(urn="urn:cts:latinLit")[0]), 1, "URN Filtering works" ) self.assertEqual( len(Repository.__getTextMetadata__(urn="urn:cts:farsiLit:hafez.divan.perseus-eng1")[0]), 1, "Complete URN filtering works" )
farsi.parent = tic farsi.set_label("Farsi", "eng") gc = TextInventory("urn:perseus:greekLit") gc.parent = tic gc.set_label("Ancient Greek", "eng") gc.set_label("Grec Ancien", "fre") dispatcher = CollectionDispatcher(tic) @dispatcher.inventory("urn:perseus:latinLit") def dispatchLatinLit(collection, path=None, **kwargs): if collection.id.startswith("urn:cts:latinLit:"): return True return False @dispatcher.inventory("urn:perseus:farsiLit") def dispatchfFarsiLit(collection, path=None, **kwargs): if collection.id.startswith("urn:cts:farsiLit:"): return True return False NautilusDummy = CTSCapitainsLocalResolver(resource=[ "./tests/test_data/nautilus/farsiLit", "./tests/test_data/nautilus/latinLit" ], dispatcher=dispatcher) NautilusDummy.logger.disabled = True