Пример #1
0
    def test_allow_no_template_config(self):
        no_template_config = {
            k: v for k, v in self.config.items() if k != "templates"
        }
        resolver = TemplateHTTPResolver(no_template_config)

        with pytest.raises(ResolverException):
            resolver.resolve(app=None, ident="a:foo.jpg", base_uri="")
Пример #2
0
    def test_template_http_resolver(self):

        # Test with no config
        self.assertRaises(ResolverException, lambda: TemplateHTTPResolver({}))

        # Test with the multiple templates
        config = {
            'cache_root': self.app.img_cache.cache_root,
            'templates': 'a,b, c, d',
            'a': {
                'url': 'http://mysite.com/images/%s'
            },
            'b': {
                'url': 'http://mysite.com/images/%s/access/'
            },
            'c': {
                'url': 'http://othersite.co/img/%s'
            }
        }

        self.app.resolver = TemplateHTTPResolver(config)
        self.assertEqual(self.app.resolver.cache_root,
                         self.app.img_cache.cache_root)
        self.assert_('a' in self.app.resolver.templates)
        self.assert_('b' in self.app.resolver.templates)
        self.assert_('c' in self.app.resolver.templates)
        self.assert_('d' not in self.app.resolver.templates)
        self.assertEqual(self.app.resolver.templates['a'], config['a'])
        self.assertEqual(self.app.resolver.templates['b'], config['b'])
        self.assertEqual(self.app.resolver.templates['c'], config['c'])
        # automatically set for simple http resolver
        self.assertEqual(self.app.resolver.uri_resolvable, True)

        # test web request uri logic
        self.assertEqual('http://mysite.com/images/foo.jpg',
                         self.app.resolver._web_request_url('a:foo.jpg')[0])
        self.assertEqual('http://mysite.com/images/id1/access/',
                         self.app.resolver._web_request_url('b:id1')[0])
        self.assertEqual(
            'http://othersite.co/img/foo:bar:baz',
            self.app.resolver._web_request_url('c:foo:bar:baz')[0])
        self.assertEqual(None,
                         self.app.resolver._web_request_url('unknown:id2')[0])
Пример #3
0
    def test_parsing_template_http_resolver_config(self):
        resolver = TemplateHTTPResolver(self.config)
        assert resolver.cache_root == self.config['cache_root']

        assert resolver.templates['a'] == self.config['a']
        assert resolver.templates['b'] == self.config['b']
        assert resolver.templates['c'] == self.config['c']
        assert 'd' not in resolver.templates

        # Automatically set by SimpleHTTPResolver
        assert resolver.uri_resolvable
Пример #4
0
 def test_is_resolvable(self, mock_responses, ident, expected_resolvable):
     resolver = TemplateHTTPResolver(self.config)
     assert resolver.is_resolvable(ident=ident) == expected_resolvable
Пример #5
0
 def test_adding_options_to_parsed_uri(self, config, expected_options):
     new_config = copy.deepcopy(self.config)
     new_config['a'].update(config)
     resolver = TemplateHTTPResolver(new_config)
     _, options = resolver._web_request_url('a:id1.jpg')
     assert options == expected_options
Пример #6
0
 def test_bad_delimited_ident_is_resolvererror(self, bad_ident):
     resolver = TemplateHTTPResolver(self.delimited_config)
     with pytest.raises(ResolverException) as exc:
         resolver._web_request_url(bad_ident)
     assert 'Bad URL request' in str(exc.value)
Пример #7
0
 def test_using_delimiters_for_template(self, ident, expected_uri):
     resolver = TemplateHTTPResolver(self.delimited_config)
     uri, _ = resolver._web_request_url(ident)
     assert uri == expected_uri
Пример #8
0
 def test_web_request_uri_logic(self, ident, expected_uri):
     resolver = TemplateHTTPResolver(self.config)
     uri, _ = resolver._web_request_url(ident)
     assert uri == expected_uri
Пример #9
0
 def test_template_http_resolver_with_no_config_is_error(self):
     with pytest.raises(ResolverException):
         TemplateHTTPResolver({})