Skip to content
Snippets Groups Projects
Commit 39e95772 authored by Nathan Hertz's avatar Nathan Hertz
Browse files

Committing the tests for the capability request Pyramid views that I

forgot to add in the previous MR
parent b850cbaf
No related branches found
No related tags found
1 merge request!90Add forgotten test file for the new capability request Pyramid views
Pipeline #604 passed
This commit is part of merge request !90. Comments created here will be created in the context of that merge request.
"""
Tests that test the view functionality of our capability request REST API.
The logic can be found in `capability/views/capability.py`.
"""
from pyramid.config import Configurator
from pyramid.httpexceptions import (
HTTPBadRequest,
HTTPExpectationFailed,
HTTPNotFound,
HTTPPreconditionFailed,
)
from pyramid.testing import DummyRequest
def test_view_capability_request(test_config: Configurator, request_null_capability: DummyRequest):
"""
Tests the view_capability_request view to make sure it properly returns the info of a capability request
:param test_config: Dummy Pyramid Configurator object set up for testing
:param request_null_capability: Dummy Pyramid request object set up with mocked DB access
supporting the null capability
"""
from capability.views.capability_request import view_capability_request
expected_response = (
'{"id": 0, "capability_name": "null", "state": "Created", "parameters": "-g"}'
)
request_null_capability.matchdict["capability_name"] = "null"
request_null_capability.matchdict["request_id"] = 0
response = view_capability_request(request_null_capability)
assert response.status_code == 200
assert response.json_body == expected_response
def test_view_capability_request_not_found(
test_config: Configurator, request_null_capability: DummyRequest
):
"""
Tests the view_capability_request view to make sure it properly returns a 404 Not Found exception
when a capability request does not exist
:param test_config: Dummy Pyramid Configurator object set up for testing
:param request_null_capability: Dummy Pyramid request object set up with mocked DB access
supporting the null capability
"""
from capability.views.capability_request import view_capability_request
request_null_capability.matchdict["capability_name"] = "null"
request_null_capability.matchdict["request_id"] = -1
response = view_capability_request(request_null_capability)
assert response.status_code == 404
assert type(response) is HTTPNotFound
def test_create_capability_request(
test_config: Configurator, request_null_capability: DummyRequest
):
"""
Tests the create capability view to make sure it properly supports creation of capabilities
:param test_config: Dummy Pyramid Configurator object set up for testing
:param request_null_capability: Dummy Pyramid request object set up with mocked DB access
supporting the null capability
"""
from capability.views.capability_request import create_capability_request
request_null_capability.json_body = {"parameters": "-g", "versions": []}
# Assert test capability not in list of capabilities (mocked)
assert not request_null_capability.capability_info.lookup_capability_request(1)
response = create_capability_request(request_null_capability)
assert response.status_code == 200
expected_response = (
'{"id": 1, "capability_name": "null", "state": "Created", "parameters": "-g"}'
)
assert response.json_body == expected_response
# Assert test capability has been added to list of capabilities (mocked)
assert request_null_capability.capability_info.lookup_capability_request(1)
def test_create_capability_request_error(
test_config: Configurator, request_null_capability: DummyRequest
):
"""
Tests that the create_capability_request view correctly responds with exceptions given bad input
:param test_config: Dummy Pyramid Configurator object set up for testing
:param request_null_capability: Dummy Pyramid request object set up with mocked DB access
supporting the null capability
"""
from capability.views.capability_request import create_capability_request
request_null_capability.json_body = {"bad": "param"}
response_bad_params = create_capability_request(request_null_capability)
assert response_bad_params.status_code == 400
assert type(response_bad_params) is HTTPBadRequest
request_null_capability.matchdict["capability_name"] = "does_not_exist"
request_null_capability.json_body = {"parameters": "-g", "versions": []}
response_does_not_exist = create_capability_request(request_null_capability)
assert response_does_not_exist.status_code == 412
assert type(response_does_not_exist) is HTTPPreconditionFailed
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment