def test03_level(self): """Test level handling.""" i = IIIFInfo() i.compliance_prefix = 'prefix/' i.compliance_suffix = '/suffix' # and good i.compliance = 'prefix/2/suffix' self.assertEqual(i.level, 2) i.compliance = 'prefix/3/suffix' self.assertEqual(i.level, 3) # and bad i.compliance = '' # FIXME: how to avoid wrapping @property call in lamda? self.assertRaises(IIIFInfoError, lambda: i.level) i.compliance = 'prefix//suffix' self.assertRaises(IIIFInfoError, lambda: i.level) i.compliance = 'prefix/22/suffix' self.assertRaises(IIIFInfoError, lambda: i.level) i.compliance = 'prefix/junk/suffix' self.assertRaises(IIIFInfoError, lambda: i.level) i.compliance = 'extra/prefix/2/suffix' self.assertRaises(IIIFInfoError, lambda: i.level) i.compliance = '...2/suffix' self.assertRaises(IIIFInfoError, lambda: i.level) i.compliance = 'prefix/2...' self.assertRaises(IIIFInfoError, lambda: i.level) i.compliance = 'prefix/2/suffix/extra' self.assertRaises(IIIFInfoError, lambda: i.level)
def test03_level(self): """Test level handling.""" i = IIIFInfo() i.compliance_prefix = "prefix/" i.compliance_suffix = "/suffix" # and good i.compliance = "prefix/2/suffix" self.assertEqual(i.level, 2) i.compliance = "prefix/3/suffix" self.assertEqual(i.level, 3) # and bad i.compliance = "" # FIXME: how to avoid wrapping @property call in lamda? self.assertRaises(IIIFInfoError, lambda: i.level) i.compliance = "prefix//suffix" self.assertRaises(IIIFInfoError, lambda: i.level) i.compliance = "prefix/22/suffix" self.assertRaises(IIIFInfoError, lambda: i.level) i.compliance = "prefix/junk/suffix" self.assertRaises(IIIFInfoError, lambda: i.level) i.compliance = "extra/prefix/2/suffix" self.assertRaises(IIIFInfoError, lambda: i.level) i.compliance = "...2/suffix" self.assertRaises(IIIFInfoError, lambda: i.level) i.compliance = "prefix/2..." self.assertRaises(IIIFInfoError, lambda: i.level) i.compliance = "prefix/2/suffix/extra" self.assertRaises(IIIFInfoError, lambda: i.level)
def test05_level_and_profile(self): """Test level and profile setting.""" i = IIIFInfo(api_version='2.1') i.level = 0 self.assertEqual(i.level, 0) self.assertEqual(i.compliance, "http://iiif.io/api/image/2/level0.json") i.level = 2 self.assertEqual(i.level, 2) self.assertEqual(i.compliance, "http://iiif.io/api/image/2/level2.json") # Set via compliance i.compliance = "http://iiif.io/api/image/2/level1.json" self.assertEqual(i.level, 1) # Set via profile i.profile = ["http://iiif.io/api/image/2/level1.json"] self.assertEqual(i.level, 1) # Set new via compliance i = IIIFInfo(api_version='2.1') i.compliance = "http://iiif.io/api/image/2/level1.json" self.assertEqual(i.level, 1)
def test05_level_and_profile(self): """Test level and profile setting.""" i = IIIFInfo(api_version='3.0') i.level = 0 self.assertEqual(i.level, 0) self.assertEqual(i.compliance, "level0") i.level = 2 self.assertEqual(i.level, 2) self.assertEqual(i.compliance, "level2") # Set via compliance i.compliance = "level1" self.assertEqual(i.level, 1) # Set via profile i.profile = "level2" self.assertEqual(i.level, 2) # Set new via compliance i = IIIFInfo(api_version='3.0') i.compliance = "level1" self.assertEqual(i.level, 1)