From f64d8e8be4151be00b7b5becd64c802b123a0e9f Mon Sep 17 00:00:00 2001 From: Macartur Sousa Date: Thu, 22 Oct 2015 17:32:25 -0200 Subject: [PATCH] Test get_template_search_preview template tag --- colab/search/tests.py | 130 ---------------------------------------------------------------------------------------------------------------------------------- colab/search/tests/__init__.py | 0 colab/search/tests/test_search_view.py | 130 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ colab/search/tests/test_templatetags.py | 34 ++++++++++++++++++++++++++++++++++ 4 files changed, 164 insertions(+), 130 deletions(-) delete mode 100644 colab/search/tests.py create mode 100644 colab/search/tests/__init__.py create mode 100644 colab/search/tests/test_search_view.py create mode 100644 colab/search/tests/test_templatetags.py diff --git a/colab/search/tests.py b/colab/search/tests.py deleted file mode 100644 index 0b67da2..0000000 --- a/colab/search/tests.py +++ /dev/null @@ -1,130 +0,0 @@ -# -*- coding:utf-8 -*- - -import mock - -from colab.plugins.utils import filters_importer -from django.test import TestCase, Client -from django.core.management import call_command -from colab.search.forms import ColabSearchForm - - -class SearchViewTest(TestCase): - - fixtures = ['test_data.json'] - - def setUp(self): - call_command('rebuild_index', interactive=False, verbosity=0) - self.client = Client() - - def tearDown(self): - call_command('clear_index', interactive=False, verbosity=0) - - def test_search_thread(self): - request = self.client.get('/search/?q=thread') - thread_list = request.context['page'].object_list - - self.assertEqual(3, len(thread_list)) - - condition = any('This is a repply to Thread 1 on list A' in - t.description for t in thread_list) - self.assertTrue(condition) - condition = any('This is a repply to Thread 1 on list B' in - t.description for t in thread_list) - self.assertTrue(condition) - condition = any('This is a repply to Thread 1 on list C' in - t.description for t in thread_list) - self.assertTrue(condition) - - def test_search_account_by_firstName(self): - request = self.client.get('/search/?q=Chuck') - user_list = request.context['page'].object_list - - self.assertEqual(1, len(user_list)) - - self.assertIn('chucknorris@mail.com', user_list[0].object.email) - self.assertIn('Chuck', user_list[0].object.first_name) - self.assertIn('Norris', user_list[0].object.last_name) - self.assertIn('chucknorris', user_list[0].object.username) - - def test_search_account_by_lastName(self): - request = self.client.get('/search/?q=Norris') - user_list = request.context['page'].object_list - - self.assertEqual(2, len(user_list)) - - self.assertIn('heisenberg@mail.com', user_list[1].object.email) - self.assertIn('Heisenberg', user_list[1].object.first_name) - self.assertIn('Norris', user_list[1].object.last_name) - self.assertIn('heisenbergnorris', user_list[1].object.username) - - self.assertIn('chucknorris@mail.com', user_list[0].object.email) - self.assertIn('Chuck', user_list[0].object.first_name) - self.assertIn('Norris', user_list[0].object.last_name) - self.assertIn('chucknorris', user_list[0].object.username) - - def test_search_plugin_filters(self): - plugin_filter = { - 'plugin_name': { - 'name': 'PluginData', - 'icon': 'plugin_icon', - 'fields': ( - ('field_1', 'Field1', ''), - ('field_2', 'Field2', ''), - ), - }, - } - filters_importer.import_plugin_filters = mock.Mock( - return_value=plugin_filter) - - request = self.client.get('/search/?q=') - - value = [('plugin_name', 'PluginData', 'plugin_icon')] - - self.assertEqual(request.context['filters_options'], value) - - def test_search_dynamic_form_fields(self): - plugin_filter = { - 'plugin_name': { - 'name': 'PluginData', - 'icon': 'plugin_icon', - 'fields': ( - ('field_1', 'Field1', ''), - ('field_2', 'Field2', ''), - ), - }, - } - filters_importer.import_plugin_filters = mock.Mock( - return_value=plugin_filter) - - form = ColabSearchForm() - - self.assertIn('field_1', form.fields.keys()) - self.assertIn('field_2', form.fields.keys()) - - def test_search_multiple_filters(self): - request = self.client.get('/search/?q=&type=thread+user') - user_list = request.context['page'].object_list - - self.assertEqual(6, len(user_list)) - - self.assertIn('admin@mail.com', user_list[0].object.email) - self.assertIn('admin', user_list[0].object.username) - - self.assertIn('chucknorris@mail.com', user_list[1].object.email) - self.assertIn('Chuck', user_list[1].object.first_name) - self.assertIn('Norris', user_list[1].object.last_name) - self.assertIn('chucknorris', user_list[1].object.username) - - self.assertIn('heisenberg@mail.com', user_list[2].object.email) - self.assertIn('Heisenberg', user_list[2].object.first_name) - self.assertIn('Norris', user_list[2].object.last_name) - self.assertIn('heisenbergnorris', user_list[2].object.username) - - self.assertIn('Admin Administrator', user_list[3].author) - self.assertIn('Response to Thread 1A', user_list[3].title) - - self.assertIn('Admin Administrator', user_list[4].author) - self.assertIn('Message 1 on Thread 1B', user_list[4].title) - - self.assertIn('Admin Administrator', user_list[5].author) - self.assertIn('Message 1 on Thread 1C', user_list[5].title) diff --git a/colab/search/tests/__init__.py b/colab/search/tests/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/colab/search/tests/__init__.py diff --git a/colab/search/tests/test_search_view.py b/colab/search/tests/test_search_view.py new file mode 100644 index 0000000..0b67da2 --- /dev/null +++ b/colab/search/tests/test_search_view.py @@ -0,0 +1,130 @@ +# -*- coding:utf-8 -*- + +import mock + +from colab.plugins.utils import filters_importer +from django.test import TestCase, Client +from django.core.management import call_command +from colab.search.forms import ColabSearchForm + + +class SearchViewTest(TestCase): + + fixtures = ['test_data.json'] + + def setUp(self): + call_command('rebuild_index', interactive=False, verbosity=0) + self.client = Client() + + def tearDown(self): + call_command('clear_index', interactive=False, verbosity=0) + + def test_search_thread(self): + request = self.client.get('/search/?q=thread') + thread_list = request.context['page'].object_list + + self.assertEqual(3, len(thread_list)) + + condition = any('This is a repply to Thread 1 on list A' in + t.description for t in thread_list) + self.assertTrue(condition) + condition = any('This is a repply to Thread 1 on list B' in + t.description for t in thread_list) + self.assertTrue(condition) + condition = any('This is a repply to Thread 1 on list C' in + t.description for t in thread_list) + self.assertTrue(condition) + + def test_search_account_by_firstName(self): + request = self.client.get('/search/?q=Chuck') + user_list = request.context['page'].object_list + + self.assertEqual(1, len(user_list)) + + self.assertIn('chucknorris@mail.com', user_list[0].object.email) + self.assertIn('Chuck', user_list[0].object.first_name) + self.assertIn('Norris', user_list[0].object.last_name) + self.assertIn('chucknorris', user_list[0].object.username) + + def test_search_account_by_lastName(self): + request = self.client.get('/search/?q=Norris') + user_list = request.context['page'].object_list + + self.assertEqual(2, len(user_list)) + + self.assertIn('heisenberg@mail.com', user_list[1].object.email) + self.assertIn('Heisenberg', user_list[1].object.first_name) + self.assertIn('Norris', user_list[1].object.last_name) + self.assertIn('heisenbergnorris', user_list[1].object.username) + + self.assertIn('chucknorris@mail.com', user_list[0].object.email) + self.assertIn('Chuck', user_list[0].object.first_name) + self.assertIn('Norris', user_list[0].object.last_name) + self.assertIn('chucknorris', user_list[0].object.username) + + def test_search_plugin_filters(self): + plugin_filter = { + 'plugin_name': { + 'name': 'PluginData', + 'icon': 'plugin_icon', + 'fields': ( + ('field_1', 'Field1', ''), + ('field_2', 'Field2', ''), + ), + }, + } + filters_importer.import_plugin_filters = mock.Mock( + return_value=plugin_filter) + + request = self.client.get('/search/?q=') + + value = [('plugin_name', 'PluginData', 'plugin_icon')] + + self.assertEqual(request.context['filters_options'], value) + + def test_search_dynamic_form_fields(self): + plugin_filter = { + 'plugin_name': { + 'name': 'PluginData', + 'icon': 'plugin_icon', + 'fields': ( + ('field_1', 'Field1', ''), + ('field_2', 'Field2', ''), + ), + }, + } + filters_importer.import_plugin_filters = mock.Mock( + return_value=plugin_filter) + + form = ColabSearchForm() + + self.assertIn('field_1', form.fields.keys()) + self.assertIn('field_2', form.fields.keys()) + + def test_search_multiple_filters(self): + request = self.client.get('/search/?q=&type=thread+user') + user_list = request.context['page'].object_list + + self.assertEqual(6, len(user_list)) + + self.assertIn('admin@mail.com', user_list[0].object.email) + self.assertIn('admin', user_list[0].object.username) + + self.assertIn('chucknorris@mail.com', user_list[1].object.email) + self.assertIn('Chuck', user_list[1].object.first_name) + self.assertIn('Norris', user_list[1].object.last_name) + self.assertIn('chucknorris', user_list[1].object.username) + + self.assertIn('heisenberg@mail.com', user_list[2].object.email) + self.assertIn('Heisenberg', user_list[2].object.first_name) + self.assertIn('Norris', user_list[2].object.last_name) + self.assertIn('heisenbergnorris', user_list[2].object.username) + + self.assertIn('Admin Administrator', user_list[3].author) + self.assertIn('Response to Thread 1A', user_list[3].title) + + self.assertIn('Admin Administrator', user_list[4].author) + self.assertIn('Message 1 on Thread 1B', user_list[4].title) + + self.assertIn('Admin Administrator', user_list[5].author) + self.assertIn('Message 1 on Thread 1C', user_list[5].title) diff --git a/colab/search/tests/test_templatetags.py b/colab/search/tests/test_templatetags.py new file mode 100644 index 0000000..4cfa6f9 --- /dev/null +++ b/colab/search/tests/test_templatetags.py @@ -0,0 +1,34 @@ +# -*- coding:utf-8 -*- + +from django.test import TestCase +from colab.search.templatetags.search_preview_templates import ( + get_search_preview_templates) +from mock import MagicMock, PropertyMock + + +class SearchTemplateTagsTest(TestCase): + + def setUp(self): + self.model_indexed_mock = MagicMock() + self.template_path = "{}/{}_search_preview.html" + + def set_mock_value(self, value): + type(self.model_indexed_mock).type = PropertyMock(return_value=value) + + def test_get_search_preview_templates_with_user(self): + self.set_mock_value("user") + include_path = get_search_preview_templates(self.model_indexed_mock) + self.assertEqual(include_path, self.template_path.format("accounts", + "user")) + + def test_get_search_preview_templates_with_thread(self): + self.set_mock_value("thread") + include_path = get_search_preview_templates(self.model_indexed_mock) + self.assertEqual(include_path, + self.template_path.format("superarchives", "thread")) + + def test_get_search_preview_templates_with_plugin(self): + self.set_mock_value("plugin_model") + include_path = get_search_preview_templates(self.model_indexed_mock) + self.assertEqual(include_path, self.template_path.format("plugin", + "model")) -- libgit2 0.21.2