def test02_scale_factor(self): """Test scale factor.""" ir = IIIFInfo(width=1, height=2, scale_factors=[ 1, 2], api_version='1.0') json = ir.as_json(validate=False) self.assertRegexpMatches(json, r'"scale_factors": \[\s*1')
def test20_write_example_in_spec(self): """Create example info.json in spec.""" i = IIIFInfo( api_version='2.1', id= "http://www.example.org/image-service/abcd1234/1E34750D-38DB-4825-A38A-B60A345E591C", # "protocol" : "http://iiif.io/api/image", width=6000, height=4000, sizes=[{ "width": 150, "height": 100 }, { "width": 600, "height": 400 }, { "width": 3000, "height": 2000 }], tiles=[{ "width": 512, "scaleFactors": [1, 2, 4] }, { "width": 1024, "height": 2048, "scaleFactors": [8, 16] }], attribution=[{ "@value": "<span>Provided by Example Organization</span>", "@language": "en" }, { "@value": "<span>Darparwyd gan Enghraifft Sefydliad</span>", "@language": "cy" }], logo={ "@id": "http://example.org/image-service/logo/full/200,/0/default.png", "service": { "@context": "http://iiif.io/api/image/2/context.json", "@id": "http://example.org/image-service/logo", "profile": "http://iiif.io/api/image/2/level2.json" } }, license=[ "http://example.org/rights/license1.html", "https://creativecommons.org/licenses/by/4.0/" ], profile=["http://iiif.io/api/image/2/level2.json"], formats=["gif", "pdf"], qualities=["color", "gray"], supports=[ "canonicalLinkHeader", "rotationArbitrary", "profileLinkHeader", "http://example.com/feature/" ], service=[{ "@context": "http://iiif.io/api/annex/service/physdim/1/context.json", "profile": "http://iiif.io/api/annex/service/physdim", "physicalScale": 0.0025, "physicalUnits": "in" }, { "@context": "http://geojson.org/contexts/geojson-base.jsonld", "@id": "http://www.example.org/geojson/paris.json" }]) reparsed_json = json.loads(i.as_json()) example_json = json.load( open('tests/testdata/info_json_2_1/info_from_spec_section_5_6.json' )) self.maxDiff = 4000 self.assertEqual(reparsed_json, example_json)
def test10_read_examples_from_spec(self): """Test reading of examples from spec.""" # Section 5.2, full example i = IIIFInfo(api_version='2.1') fh = open( 'tests/testdata/info_json_2_1/info_from_spec_section_5_2.json') i.read(fh) self.assertEqual(i.context, "http://iiif.io/api/image/2/context.json") self.assertEqual( i.id, "http://www.example.org/image-service/abcd1234/1E34750D-38DB-4825-A38A-B60A345E591C" ) self.assertEqual(i.protocol, "http://iiif.io/api/image") self.assertEqual(i.width, 6000) self.assertEqual(i.height, 4000) self.assertEqual(i.sizes, [{ "width": 150, "height": 100 }, { "width": 600, "height": 400 }, { "width": 3000, "height": 2000 }]) self.assertEqual(i.tiles, [{ "width": 512, "scaleFactors": [1, 2, 4, 8, 16] }]) self.assertEqual(i.profile, ["http://iiif.io/api/image/2/level2.json"]) # extracted information self.assertEqual(i.compliance, "http://iiif.io/api/image/2/level2.json") # and 1.1 style tile properties self.assertEqual(i.tile_width, 512) self.assertEqual(i.tile_height, 512) self.assertEqual(i.scale_factors, [1, 2, 4, 8, 16]) # Section 5.3, full example i = IIIFInfo(api_version='2.1') fh = open( 'tests/testdata/info_json_2_1/info_from_spec_section_5_3.json') i.read(fh) self.assertEqual(i.context, "http://iiif.io/api/image/2/context.json") self.assertEqual( i.id, "http://www.example.org/image-service/abcd1234/1E34750D-38DB-4825-A38A-B60A345E591C" ) self.assertEqual(i.protocol, "http://iiif.io/api/image") self.assertEqual(i.width, 4000) self.assertEqual(i.height, 3000) self.assertEqual(i.profile, [ "http://iiif.io/api/image/2/level2.json", { "formats": ["gif", "pdf"], "maxWidth": 2000, "qualities": ["color", "gray"], "supports": [ "canonicalLinkHeader", "rotationArbitrary", "profileLinkHeader", "http://example.com/feature/" ] } ]) # extracted information self.assertEqual(i.compliance, "http://iiif.io/api/image/2/level2.json") # Section 5.6, full example i = IIIFInfo(api_version='2.1') fh = open( 'tests/testdata/info_json_2_1/info_from_spec_section_5_6.json') i.read(fh) self.assertEqual(i.context, "http://iiif.io/api/image/2/context.json") self.assertEqual( i.id, "http://www.example.org/image-service/abcd1234/1E34750D-38DB-4825-A38A-B60A345E591C" ) self.assertEqual(i.protocol, "http://iiif.io/api/image") self.assertEqual(i.width, 6000) self.assertEqual(i.height, 4000) self.assertEqual(i.sizes, [{ "width": 150, "height": 100 }, { "width": 600, "height": 400 }, { "width": 3000, "height": 2000 }])
def test08_set_version_info(self): """Test setting of version information.""" i = IIIFInfo() self.assertRaises(IIIFInfoError, i.set_version_info, api_version='9.9')
def test12_read_unknown_context(self): """Test read with bad/unknown @context.""" i = IIIFInfo() fh = open('tests/testdata/info_json_2_0/info_bad_context.json') self.assertRaises(IIIFInfoError, i.read, fh)
def test04_conf(self): """Test config using conf parameter.""" conf = {'tile_width': 999, 'scale_factors': [9, 8, 7]} i = IIIFInfo(conf=conf, api_version='1.0') self.assertEqual(i.tile_width, 999) self.assertEqual(i.scale_factors, [9, 8, 7])
def test20_read_unknown_context(self): """Test attempt to read document with bad/unknown @context.""" i = IIIFInfo() fh = open('tests/testdata/info_json_1_0/info_bad_context.json') self.assertRaises(Exception, i.read, fh)
def test12_read_unknown_context(self): i = IIIFInfo() fh = open('test_info/2.0/info_bad_context.json') self.assertRaises( Exception, i.read, fh )
def test04_conf(self): conf = { 'tile_width': 999, 'scale_factors': [9,8,7] } i = IIIFInfo(conf=conf) self.assertEqual( i.tile_width, 999 ) self.assertEqual( i.scale_factors, [9,8,7] )
def test03_array_vals(self): i = IIIFInfo() i.scale_factors = [1,2,3] self.assertEqual( i.scale_factors, [1,2,3] ) i.set('scale_factors',[4,5,6]) self.assertEqual( i.scale_factors, [4,5,6] )
def test02_scale_factor(self): ir = IIIFInfo(width=199,height=299,tile_width=100,tile_height=100,scale_factors=[1,2]) #self.assertRegexpMatches( ir.as_json(validate=False), r'"scaleFactors": \[\s*1' ) #,\s*2\s*]' ) #no assertRegexpMatches in 2.6 json = ir.as_json(validate=False) self.assertTrue( re.search(r'"width": 100',json) ) self.assertTrue( re.search(r'"scaleFactors": \[\s*1',json) )
def test12_read_example_with_unknown_context(self): """Test read with unknown/bad context.""" i = IIIFInfo() fh = open('tests/testdata/info_json_1_1/info_bad_context.json') self.assertRaises(Exception, i.read, fh)