Skip to content

Commit 0e93b49

Browse files
author
Sebastian Mainberger
committed
TST: Add tests for path prioritization.
1 parent 44d3fd3 commit 0e93b49

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed

tests/unit/templating/test_paths_finders.py

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -435,3 +435,90 @@ def test_valid(self, finder, path_2, operation_2, server):
435435
assert result == (
436436
path_2, operation_2, server, path_result, server_result,
437437
)
438+
439+
440+
class TestConcretePaths(
441+
BaseTestSpecServer, BaseTestSimpleServer):
442+
443+
path_name = '/keys/{id}/tokens'
444+
445+
@pytest.fixture
446+
def operation_2(self):
447+
return Operation('get', '/keys/master/tokens', {}, {})
448+
449+
@pytest.fixture
450+
def operations_2(self, operation_2):
451+
return {
452+
'get': operation_2,
453+
}
454+
455+
@pytest.fixture
456+
def path(self, operations):
457+
return Path('/keys/{id}/tokens', operations)
458+
459+
@pytest.fixture
460+
def path_2(self, operations_2):
461+
return Path('/keys/master/tokens', operations_2)
462+
463+
@pytest.fixture
464+
def paths(self, path, path_2):
465+
return {
466+
path.name: path,
467+
path_2.name: path_2,
468+
}
469+
470+
def test_valid(self, finder, path_2, operation_2, server):
471+
request_uri = '/keys/master/tokens'
472+
request = MockRequest(
473+
'http://petstore.swagger.io', 'get', request_uri)
474+
result = finder.find(request)
475+
476+
path_result = TemplateResult(path_2.name, {})
477+
server_result = TemplateResult(self.server_url, {})
478+
assert result == (
479+
path_2, operation_2, server, path_result, server_result,
480+
)
481+
482+
483+
class TestTemplateConcretePaths(
484+
BaseTestSpecServer, BaseTestSimpleServer):
485+
486+
path_name = '/keys/{id}/tokens/{id2}'
487+
488+
@pytest.fixture
489+
def operation_2(self):
490+
return Operation('get', '/keys/{id}/tokens/master', {}, {})
491+
492+
@pytest.fixture
493+
def operations_2(self, operation_2):
494+
return {
495+
'get': operation_2,
496+
}
497+
498+
@pytest.fixture
499+
def path(self, operations):
500+
return Path('/keys/{id}/tokens/{id2}', operations)
501+
502+
@pytest.fixture
503+
def path_2(self, operations_2):
504+
return Path('/keys/{id}/tokens/master', operations_2)
505+
506+
@pytest.fixture
507+
def paths(self, path, path_2):
508+
return {
509+
path.name: path,
510+
path_2.name: path_2,
511+
}
512+
513+
def test_valid(self, finder, path_2, operation_2, server):
514+
token_id = '123'
515+
request_uri = '/keys/{0}/tokens/master'.format(token_id)
516+
request = MockRequest(
517+
'http://petstore.swagger.io', 'get', request_uri)
518+
result = finder.find(request)
519+
520+
path_result = TemplateResult(path_2.name, {'id': '123'})
521+
server_result = TemplateResult(self.server_url, {})
522+
assert result == (
523+
path_2, operation_2, server, path_result, server_result,
524+
)

0 commit comments

Comments
 (0)