Пример #1
0
 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')
Пример #2
0
 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)
Пример #3
0
    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
        }])
Пример #4
0
 def test08_set_version_info(self):
     """Test setting of version information."""
     i = IIIFInfo()
     self.assertRaises(IIIFInfoError, i.set_version_info, api_version='9.9')
Пример #5
0
 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)
Пример #6
0
 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])
Пример #7
0
 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)
Пример #8
0
 def test12_read_unknown_context(self):
     i = IIIFInfo()
     fh = open('test_info/2.0/info_bad_context.json')
     self.assertRaises( Exception, i.read, fh )
Пример #9
0
 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] )
Пример #10
0
 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] )
Пример #11
0
 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) )
Пример #12
0
 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)