class TestResource(unittest.TestCase): def setUp(self): self.resource = Route().resource('example', 'example_controller') def test_routes_returns_list_of_route_objects(self): self.assertIsInstance(self.resource.routes(), list) self.assertIsInstance(self.resource.routes()[0], Route) self.assertEqual( self.resource.keys(), ['index', 'create', 'store', 'show', 'edit', 'update', 'destroy']) def test_exclude_removes_endpoints(self): self.resource.exclude(['show', 'destroy']) self.assertEqual(self.resource.keys(), ['index', 'create', 'store', 'edit', 'update']) def test_only_filters_other_endpoints(self): self.resource.only(['index', 'create']) self.assertEqual(self.resource.keys(), ['index', 'create']) def test_api_excludes_create_and_edit(self): self.resource.api() self.assertEqual(self.resource.keys(), ['index', 'store', 'show', 'update', 'destroy']) def test_model_is_inflected_when_creating_resource(self): self.assertEqual(self.resource.plural, 'examples') self.assertEqual(self.resource.model, 'example')
def setUp(self): self.resource = Route().resource('example', 'example_controller')
def test_chain_name_method_adds_name(self): r = Route().get('example', 'controller').name('example.index') self.assertEqual(r._name, 'example.index')
from Silo.Routing import Route routes = [ Route().get('/', 'home_controller@index'), Route().get('/test', 'home_controller@details'), Route().get('/test/', 'home_controller@details'), Route().get('/test/{test_var}/edit', 'home_controller@test'), Route().resource('examples', 'example_controller'), ]
def test_url_gets_leading_slash_when_missing(self): r = Route().get('example', 'controller') self.assertEqual(r.url, '/example')
def test_url_doesnt_get_double_leading_slash(self): r = Route().get('/example', 'controller') self.assertEqual(r.url, '/example')
def assert_route_defined(self, url, action, methods=['HEAD', 'GET']): r = Route().match(methods, url, action) self.assertEqual(r.url, url) self.assertEqual(r.action, action) self.assertEqual(r.methods, methods) self.assertIsInstance(r, Route)
def setUp(self): self.route = Route().post('example', 'example@method') self.router = Router([self.route])
def test_resource_mapped_to_equivalent_rules(self): resource = Route().resource('examples', 'example_controller') r = Router([resource]) self.assertEqual(len(r.routes), 7)