예제 #1
0
    def resolve(self, pointer):
        try:
            dp = DocumentPointer(pointer)
            if dp.is_inner():
                logger.debug('resolve inner %s', pointer)
                return self.factory.local(self.registry.resolve(pointer),
                                          pointer,
                                          self.registry,
                                          self.spec)

            logger.debug('resolve outside %s', pointer)
            return self.factory(self.registry.resolve(pointer),
                                pointer,
                                self.spec)
        except ExtractError as error:
            raise CompilationError({}, error)
예제 #2
0
 def test_inner_document(self):
     dp = DocumentPointer('#/foo')
     assert dp.is_inner()
     assert dp.document == ''
     assert dp.pointer == '/foo'
예제 #3
0
 def test_document(self):
     dp = DocumentPointer('example.com#/foo')
     assert not dp.is_inner()
     assert dp.document == 'example.com'
     assert dp.pointer == '/foo'
예제 #4
0
 def test_inner_document(self):
     dp = DocumentPointer('#/foo')
     assert dp.is_inner()
     assert dp.document == ''
     assert dp.pointer == '/foo'
예제 #5
0
 def test_document(self):
     dp = DocumentPointer('example.com#/foo')
     assert not dp.is_inner()
     assert dp.document == 'example.com'
     assert dp.pointer == '/foo'