Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 12 additions & 9 deletions tests/main/test_data_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,37 +5,40 @@

from http import HTTPStatus

import pytest
from django.urls import reverse


class TestFrameworkView:
"""Test suite for the FrameworkView."""

def _get_url(self):
@pytest.fixture
def url(self):
"""Fixture to get the test url."""
return reverse("framework_json")

def test_framework_view_get(self, mocker, client):
def test_framework_view_get(self, mocker, client, url):
"""Test the GET returns the dictionary returned by `export_framework`."""
framework_dict = {"key": [{"sub-key": "value"}]}
export_mock = mocker.patch(
"main.views.data_views.export_framework", return_value=framework_dict
)

response = client.get(self._get_url())
response = client.get(url)

assert response.status_code == HTTPStatus.OK
export_mock.assert_called_once()
assert response.json() == framework_dict

def test_framework_view_can_only_get(self, client):
def test_framework_view_can_only_get(self, client, url):
"""Test to confirm it is only valid to GET the framework view."""
response = client.post(self._get_url())
response = client.post(url)
assert response.status_code == HTTPStatus.METHOD_NOT_ALLOWED
response = client.put(self._get_url())
response = client.put(url)
assert response.status_code == HTTPStatus.METHOD_NOT_ALLOWED
response = client.patch(self._get_url())
response = client.patch(url)
assert response.status_code == HTTPStatus.METHOD_NOT_ALLOWED
response = client.delete(self._get_url())
response = client.delete(url)
assert response.status_code == HTTPStatus.METHOD_NOT_ALLOWED
response = client.trace(self._get_url())
response = client.trace(url)
assert response.status_code == HTTPStatus.METHOD_NOT_ALLOWED
Loading
Loading