def test01_split_url(self): """Test split_url() method. For everything except the handling of extension type on info.json requests (where v1.0 allows XML), the behavior of split_url() is version independent. """ # mismatching baseurl r = IIIFRequest() r.baseurl = 'http://ex.org/a/' self.assertRaises(IIIFRequestError, r.split_url, 'http://other.base.url/') # matching baseurl, but bad request r = IIIFRequest() r.baseurl = 'http://ex.org/a/' self.assertRaises(IIIFRequestBaseURI, r.split_url, 'http://ex.org/a/b') # matching baseurl, good request r = IIIFRequest(baseurl='http://ex.org/a/') r.identifier = None r.split_url('http://ex.org/a/b/full/full/0/native') self.assertEqual(r.identifier, 'b') self.assertEqual(r.region, 'full') self.assertEqual(r.size, 'full') # matching baseurl, insert id, good request r = IIIFRequest(baseurl='http://ex.org/a/') r.identifier = 'b' r.split_url('http://ex.org/a/full/full/0/native') self.assertEqual(r.identifier, 'b') self.assertEqual(r.region, 'full') self.assertEqual(r.size, 'full') # matching baseurl, too many segments r = IIIFRequest(baseurl='http://ex.org/a/') self.assertRaises(IIIFRequestError, r.split_url, 'http://ex.org/a/1/2/3/4/5/6')
def test19_split_url(self): # mismatching baseurl r = IIIFRequest() r.baseurl = 'http://ex.org/a/' self.assertRaises( IIIFError, r.split_url, 'http://other.base.url/' ) # matching baseurl, but bad request r = IIIFRequest() r.baseurl = 'http://ex.org/a/' self.assertRaises( IIIFRequestBaseURI , r.split_url, 'http://ex.org/a/b' ) # matching baseurl, good request r = IIIFRequest() r.baseurl = 'http://ex.org/a/' r.identifier = None r.split_url('http://ex.org/a/b/full/full/0/native') self.assertEqual( r.identifier, 'b' ) self.assertEqual( r.region, 'full' ) self.assertEqual( r.size, 'full' ) # matching baseurl, insert id, good request r = IIIFRequest() r.baseurl = 'http://ex.org/a/' r.identifier = 'b' r.split_url('http://ex.org/a/full/full/0/native') self.assertEqual( r.identifier, 'b' ) self.assertEqual( r.region, 'full' ) self.assertEqual( r.size, 'full' ) # matching baseurl, too many segments r = IIIFRequest() r.baseurl = 'http://ex.org/a/' self.assertRaises( IIIFError, r.split_url, 'http://ex.org/a/1/2/3/4/5/6' ) # api_version=1.0, format=xyz -> bad r = IIIFRequest(api_version='1.0') r.baseurl = 'http://ex.org/a/' self.assertRaises( IIIFError, r.split_url, 'http://ex.org/a/b/info.xyz' ) # api_version=2.1, format=xml -> bad r = IIIFRequest(api_version='2.1') r.baseurl = 'http://ex.org/a/' self.assertRaises( IIIFError, r.split_url, 'http://ex.org/a/b/info.xml' ) # api_version=2.1, format=xyz -> bad r = IIIFRequest(api_version='2.1') r.baseurl = 'http://ex.org/a/' self.assertRaises( IIIFError, r.split_url, 'http://ex.org/a/b/info.xyz' )
def test03_str(self): """Simple tests of str() method.""" r = IIIFRequest() r.baseurl = 'http://ex.org/' r.identifier = 'abc' # info r.info = True r.format = 'json' self.assertTrue(re.search(r'INFO request', str(r))) self.assertTrue(re.search(r'format=json', str(r))) # non-info r.info = False r.region = 'R' r.size = 'S' r.rotation = 'X' r.quality = 'Q' r.format = 'jpg' self.assertFalse(re.search(r'INFO request', str(r))) self.assertTrue(re.search(r'region=R', str(r))) self.assertTrue(re.search(r'format=jpg', str(r)))