From e7b8a48befc9d8f43676ffa666d22843debac1b0 Mon Sep 17 00:00:00 2001
From: Alice Heaton <aliceh@aptivate.org>
Date: Tue, 21 Jul 2015 17:15:00 +0100
Subject: [PATCH] Fix tests to work with new action commands

---
 .../hid/tests/categorize_items_tests.py       | 16 +++--
 django/website/hid/tests/views_tests.py       | 65 ++++---------------
 2 files changed, 25 insertions(+), 56 deletions(-)

diff --git a/django/website/hid/tests/categorize_items_tests.py b/django/website/hid/tests/categorize_items_tests.py
index f4f80d93..75c1ad6c 100644
--- a/django/website/hid/tests/categorize_items_tests.py
+++ b/django/website/hid/tests/categorize_items_tests.py
@@ -1,10 +1,16 @@
 from __future__ import unicode_literals, absolute_import
 import pytest
 
+from django.core.urlresolvers import reverse
+from django.test import RequestFactory
 from taxonomies.tests.factories import TermFactory, TaxonomyFactory
 
 import transport
-from ..views import add_categories
+from .views_tests import fix_messages
+from ..views import add_items_categories
+
+
+ReqFactory = RequestFactory()
 
 
 @pytest.fixture
@@ -21,10 +27,12 @@ def item():
 
 
 @pytest.mark.django_db
-def test_add_categories_adds_term_to_item(term, item):
-    category_list = [(item['id'], term.name), ]
+def test_add_items_categories_adds_term_to_item(term, item):
+    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()
     [term_data] = item_data['terms']
diff --git a/django/website/hid/tests/views_tests.py b/django/website/hid/tests/views_tests.py
index 4c8b3438..7ccb36af 100644
--- a/django/website/hid/tests/views_tests.py
+++ b/django/website/hid/tests/views_tests.py
@@ -7,11 +7,11 @@ from django.http import HttpResponseRedirect
 from django.test import RequestFactory
 
 from ..views import (
-    get_deleted,
+    get_selected,
     process_items,
-    get_categories,
     delete_items,
     ViewItems,
+    DELETE_COMMAND
 )
 
 from taxonomies.tests.factories import (
@@ -45,62 +45,18 @@ def check_message(request, content):
     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.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.getlist.return_value = ["201", "199", "3"]
 
-    assert get_deleted(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
+    assert get_selected(params) == [201, 199, 3]
 
 
 @pytest.fixture
@@ -113,7 +69,10 @@ def request_item():
     [item] = list(transport.items.list())
 
     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)
 
     return [request, item]
@@ -151,7 +110,8 @@ def test_process_items_always_redirects_to_data_view():
     assert isinstance(response, HttpResponseRedirect) is True
 
     request.method = 'POST'
-    request = ReqFactory.post(url)
+    request = ReqFactory.post(url, {})
+    request = fix_messages(request)
     response = process_items(request)
     assert response.url == redirect_url
     assert isinstance(response, HttpResponseRedirect) is True
@@ -190,6 +150,7 @@ def test_get_category_options_uses_terms():
     assert (type_3.name, type_3.long_name) in options
     assert (other_term.name, other_term.long_name) not in options
 
+
 @pytest.mark.django_db
 def test_get_category_options_with_no_taxonomy_returns_all():
     # TODO: Rewrite tests to use transport layer
-- 
GitLab