Skip to content
Snippets Groups Projects
Commit e7b8a48b authored by Alice Heaton's avatar Alice Heaton :speech_balloon:
Browse files

Fix tests to work with new action commands

parent 82577506
No related branches found
No related tags found
No related merge requests found
from __future__ import unicode_literals, absolute_import from __future__ import unicode_literals, absolute_import
import pytest import pytest
from django.core.urlresolvers import reverse
from django.test import RequestFactory
from taxonomies.tests.factories import TermFactory, TaxonomyFactory from taxonomies.tests.factories import TermFactory, TaxonomyFactory
import transport import transport
from ..views import add_categories from .views_tests import fix_messages
from ..views import add_items_categories
ReqFactory = RequestFactory()
@pytest.fixture @pytest.fixture
...@@ -21,10 +27,12 @@ def item(): ...@@ -21,10 +27,12 @@ def item():
@pytest.mark.django_db @pytest.mark.django_db
def test_add_categories_adds_term_to_item(term, item): def test_add_items_categories_adds_term_to_item(term, item):
category_list = [(item['id'], term.name), ] url = reverse('data-view-process')
request = ReqFactory.post(url, {'a': 'b'})
request = fix_messages(request)
add_categories(category_list) add_items_categories(request, [item['id']], term.name)
[item_data] = transport.items.list() [item_data] = transport.items.list()
[term_data] = item_data['terms'] [term_data] = item_data['terms']
......
...@@ -7,11 +7,11 @@ from django.http import HttpResponseRedirect ...@@ -7,11 +7,11 @@ from django.http import HttpResponseRedirect
from django.test import RequestFactory from django.test import RequestFactory
from ..views import ( from ..views import (
get_deleted, get_selected,
process_items, process_items,
get_categories,
delete_items, delete_items,
ViewItems, ViewItems,
DELETE_COMMAND
) )
from taxonomies.tests.factories import ( from taxonomies.tests.factories import (
...@@ -45,62 +45,18 @@ def check_message(request, content): ...@@ -45,62 +45,18 @@ def check_message(request, content):
return False return False
def test_get_deleted_returns_empty_list_on_empty_selection(): def test_get_selected_returns_empty_list_on_empty_selection():
params = mock.MagicMock() params = mock.MagicMock()
params.getlist.return_value = [] params.getlist.return_value = []
assert get_deleted(params) == [] assert get_selected(params) == []
def test_get_deleted_returns_submitted_values_as_ints(): def test_get_selected_returns_submitted_values_as_ints():
params = mock.MagicMock() params = mock.MagicMock()
params.getlist.return_value = ["201", "199", "3"] params.getlist.return_value = ["201", "199", "3"]
assert get_deleted(params) == [201, 199, 3] assert get_selected(params) == [201, 199, 3]
def test_get_categories_returns_id_category_pairs():
post_params = {
'category-123': "second",
'category-99': "third",
'category-56': "first",
'category-1': "second",
}
expected = [
(123, "second"),
(99, "third"),
(56, "first"),
(1, "second")
]
assert sorted(get_categories(post_params)) == sorted(expected) # Order is not important
def test_get_categories_filters_out_non_categories():
post_params = {
'category-123': "second",
'category-99': "third",
'notcat-1': "second",
}
expected = [
(123, "second"),
(99, "third"),
]
assert sorted(get_categories(post_params)) == sorted(expected) # Order is not important
def test_get_categories_filters_out_removed():
post_params = {
'category-123': "second",
'category-99': "third",
'category-56': "first",
'category-1': "second",
}
removed = [1, 56]
expected = [
(123, "second"),
(99, "third"),
]
assert sorted(get_categories(post_params, removed)) == sorted(expected) # Order is not important
@pytest.fixture @pytest.fixture
...@@ -113,7 +69,10 @@ def request_item(): ...@@ -113,7 +69,10 @@ def request_item():
[item] = list(transport.items.list()) [item] = list(transport.items.list())
url = reverse('data-view-process') url = reverse('data-view-process')
request = ReqFactory.post(url, {'delete': [item['id']]}) request = ReqFactory.post(url, {
'action': DELETE_COMMAND,
'select_action': [item['id']]}
)
request = fix_messages(request) request = fix_messages(request)
return [request, item] return [request, item]
...@@ -151,7 +110,8 @@ def test_process_items_always_redirects_to_data_view(): ...@@ -151,7 +110,8 @@ def test_process_items_always_redirects_to_data_view():
assert isinstance(response, HttpResponseRedirect) is True assert isinstance(response, HttpResponseRedirect) is True
request.method = 'POST' request.method = 'POST'
request = ReqFactory.post(url) request = ReqFactory.post(url, {})
request = fix_messages(request)
response = process_items(request) response = process_items(request)
assert response.url == redirect_url assert response.url == redirect_url
assert isinstance(response, HttpResponseRedirect) is True assert isinstance(response, HttpResponseRedirect) is True
...@@ -190,6 +150,7 @@ def test_get_category_options_uses_terms(): ...@@ -190,6 +150,7 @@ def test_get_category_options_uses_terms():
assert (type_3.name, type_3.long_name) in options assert (type_3.name, type_3.long_name) in options
assert (other_term.name, other_term.long_name) not in options assert (other_term.name, other_term.long_name) not in options
@pytest.mark.django_db @pytest.mark.django_db
def test_get_category_options_with_no_taxonomy_returns_all(): def test_get_category_options_with_no_taxonomy_returns_all():
# TODO: Rewrite tests to use transport layer # TODO: Rewrite tests to use transport layer
......
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