refactor: Use DDT for uri_templates tests. (#848)
This commit is contained in:
		@@ -1,3 +1,4 @@
 | 
				
			|||||||
 | 
					import ddt
 | 
				
			||||||
import six
 | 
					import six
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import falcon
 | 
					import falcon
 | 
				
			||||||
@@ -62,6 +63,7 @@ class FileDetailsResource(object):
 | 
				
			|||||||
        self.called = True
 | 
					        self.called = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@ddt.ddt
 | 
				
			||||||
class TestUriTemplates(testing.TestBase):
 | 
					class TestUriTemplates(testing.TestBase):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def before(self):
 | 
					    def before(self):
 | 
				
			||||||
@@ -82,28 +84,19 @@ class TestUriTemplates(testing.TestBase):
 | 
				
			|||||||
        self.assertRaises(TypeError, self.api.add_route, set(), self.resource)
 | 
					        self.assertRaises(TypeError, self.api.add_route, set(), self.resource)
 | 
				
			||||||
        self.assertRaises(TypeError, self.api.add_route, self, self.resource)
 | 
					        self.assertRaises(TypeError, self.api.add_route, self, self.resource)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_field_name_cannot_start_with_digit(self):
 | 
					    @ddt.data('/hello/{1world}', '/{524hello}/world')
 | 
				
			||||||
        self.assertRaises(ValueError, self.api.add_route,
 | 
					    def test_field_name_cannot_start_with_digit(self, route):
 | 
				
			||||||
                          '/hello/{1world}', self.resource)
 | 
					        self.assertRaises(ValueError, self.api.add_route, route, self.resource)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.assertRaises(ValueError, self.api.add_route,
 | 
					    @ddt.data(
 | 
				
			||||||
                          '/{524hello}/world', self.resource)
 | 
					        '/{thing }/world',
 | 
				
			||||||
 | 
					        '/{ thing}/world',
 | 
				
			||||||
    def test_whitespace_not_allowed(self):
 | 
					        '/{ thing }/world',
 | 
				
			||||||
        self.assertRaises(ValueError, self.api.add_route,
 | 
					        '/{thing}/wo rld',
 | 
				
			||||||
                          '/{thing }/world', self.resource)
 | 
					        '/{thing} /world'
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
        self.assertRaises(ValueError, self.api.add_route,
 | 
					    def test_whitespace_not_allowed(self, route):
 | 
				
			||||||
                          '/{ thing}/world', self.resource)
 | 
					        self.assertRaises(ValueError, self.api.add_route, route, self.resource)
 | 
				
			||||||
 | 
					 | 
				
			||||||
        self.assertRaises(ValueError, self.api.add_route,
 | 
					 | 
				
			||||||
                          '/{ thing }/world', self.resource)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        self.assertRaises(ValueError, self.api.add_route,
 | 
					 | 
				
			||||||
                          '/{thing}/wo rld', self.resource)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        self.assertRaises(ValueError, self.api.add_route,
 | 
					 | 
				
			||||||
                          '/{thing} /world', self.resource)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_no_vars(self):
 | 
					    def test_no_vars(self):
 | 
				
			||||||
        self.api.add_route('/hello/world', self.resource)
 | 
					        self.api.add_route('/hello/world', self.resource)
 | 
				
			||||||
@@ -220,28 +213,13 @@ class TestUriTemplates(testing.TestBase):
 | 
				
			|||||||
        self.assertEqual(resource.id, test_id)
 | 
					        self.assertEqual(resource.id, test_id)
 | 
				
			||||||
        self.assertEqual(resource.name51, test_name)
 | 
					        self.assertEqual(resource.name51, test_name)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_empty_path_component(self):
 | 
					    @ddt.data('//', '//begin', '/end//', '/in//side')
 | 
				
			||||||
        self.assertRaises(ValueError, self.api.add_route,
 | 
					    def test_empty_path_component(self, route):
 | 
				
			||||||
                          '//', self.resource)
 | 
					        self.assertRaises(ValueError, self.api.add_route, route, self.resource)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.assertRaises(ValueError, self.api.add_route,
 | 
					    @ddt.data('', 'no', 'no/leading_slash')
 | 
				
			||||||
                          '//begin', self.resource)
 | 
					    def test_relative_path(self, route):
 | 
				
			||||||
 | 
					        self.assertRaises(ValueError, self.api.add_route, route, self.resource)
 | 
				
			||||||
        self.assertRaises(ValueError, self.api.add_route,
 | 
					 | 
				
			||||||
                          '/end//', self.resource)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        self.assertRaises(ValueError, self.api.add_route,
 | 
					 | 
				
			||||||
                          '/in//side', self.resource)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def test_relative_path(self):
 | 
					 | 
				
			||||||
        self.assertRaises(ValueError, self.api.add_route,
 | 
					 | 
				
			||||||
                          '', self.resource)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        self.assertRaises(ValueError, self.api.add_route,
 | 
					 | 
				
			||||||
                          'no', self.resource)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        self.assertRaises(ValueError, self.api.add_route,
 | 
					 | 
				
			||||||
                          'no/leading_slash', self.resource)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_same_level_complex_var(self):
 | 
					    def test_same_level_complex_var(self):
 | 
				
			||||||
        resource = FileResource()
 | 
					        resource = FileResource()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,21 +8,17 @@ import falcon.testing as testing
 | 
				
			|||||||
@ddt.ddt
 | 
					@ddt.ddt
 | 
				
			||||||
class TestUriTemplates(testing.TestBase):
 | 
					class TestUriTemplates(testing.TestBase):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_string_type_required(self):
 | 
					    @ddt.data(42, falcon.API)
 | 
				
			||||||
        self.assertRaises(TypeError, routing.compile_uri_template, 42)
 | 
					    def test_string_type_required(self, value):
 | 
				
			||||||
        self.assertRaises(TypeError, routing.compile_uri_template, falcon.API)
 | 
					        self.assertRaises(TypeError, routing.compile_uri_template, value)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_template_must_start_with_slash(self):
 | 
					    @ddt.data('this', 'this/that')
 | 
				
			||||||
        self.assertRaises(ValueError, routing.compile_uri_template, 'this')
 | 
					    def test_template_must_start_with_slash(self, value):
 | 
				
			||||||
        self.assertRaises(ValueError, routing.compile_uri_template, 'this/that')
 | 
					        self.assertRaises(ValueError, routing.compile_uri_template, value)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_template_may_not_contain_double_slash(self):
 | 
					    @ddt.data('//', 'a//', '//b', 'a//b', 'a/b//', 'a/b//c')
 | 
				
			||||||
        self.assertRaises(ValueError, routing.compile_uri_template, '//')
 | 
					    def test_template_may_not_contain_double_slash(self, value):
 | 
				
			||||||
        self.assertRaises(ValueError, routing.compile_uri_template, 'a//')
 | 
					        self.assertRaises(ValueError, routing.compile_uri_template, value)
 | 
				
			||||||
        self.assertRaises(ValueError, routing.compile_uri_template, '//b')
 | 
					 | 
				
			||||||
        self.assertRaises(ValueError, routing.compile_uri_template, 'a//b')
 | 
					 | 
				
			||||||
        self.assertRaises(ValueError, routing.compile_uri_template, 'a/b//')
 | 
					 | 
				
			||||||
        self.assertRaises(ValueError, routing.compile_uri_template, 'a/b//c')
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_root(self):
 | 
					    def test_root(self):
 | 
				
			||||||
        fields, pattern = routing.compile_uri_template('/')
 | 
					        fields, pattern = routing.compile_uri_template('/')
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user