Commit f64d8e8be4151be00b7b5becd64c802b123a0e9f

Authored by Macartur Sousa
Committed by Luiz Oliveira
1 parent b844dd9d

Test get_template_search_preview template tag

Signed-off-by: Macartur Sousa <macartur.sc@gmail.com>
Signed-off-by: Lucas Moura <lucas.moura28@gmail.com>
Signed-off-by: Lucas Kanashiro <kanashiro.duarte@gmail.com>
colab/search/tests.py
... ... @@ -1,130 +0,0 @@
1   -# -*- coding:utf-8 -*-
2   -
3   -import mock
4   -
5   -from colab.plugins.utils import filters_importer
6   -from django.test import TestCase, Client
7   -from django.core.management import call_command
8   -from colab.search.forms import ColabSearchForm
9   -
10   -
11   -class SearchViewTest(TestCase):
12   -
13   - fixtures = ['test_data.json']
14   -
15   - def setUp(self):
16   - call_command('rebuild_index', interactive=False, verbosity=0)
17   - self.client = Client()
18   -
19   - def tearDown(self):
20   - call_command('clear_index', interactive=False, verbosity=0)
21   -
22   - def test_search_thread(self):
23   - request = self.client.get('/search/?q=thread')
24   - thread_list = request.context['page'].object_list
25   -
26   - self.assertEqual(3, len(thread_list))
27   -
28   - condition = any('This is a repply to Thread 1 on list A' in
29   - t.description for t in thread_list)
30   - self.assertTrue(condition)
31   - condition = any('This is a repply to Thread 1 on list B' in
32   - t.description for t in thread_list)
33   - self.assertTrue(condition)
34   - condition = any('This is a repply to Thread 1 on list C' in
35   - t.description for t in thread_list)
36   - self.assertTrue(condition)
37   -
38   - def test_search_account_by_firstName(self):
39   - request = self.client.get('/search/?q=Chuck')
40   - user_list = request.context['page'].object_list
41   -
42   - self.assertEqual(1, len(user_list))
43   -
44   - self.assertIn('chucknorris@mail.com', user_list[0].object.email)
45   - self.assertIn('Chuck', user_list[0].object.first_name)
46   - self.assertIn('Norris', user_list[0].object.last_name)
47   - self.assertIn('chucknorris', user_list[0].object.username)
48   -
49   - def test_search_account_by_lastName(self):
50   - request = self.client.get('/search/?q=Norris')
51   - user_list = request.context['page'].object_list
52   -
53   - self.assertEqual(2, len(user_list))
54   -
55   - self.assertIn('heisenberg@mail.com', user_list[1].object.email)
56   - self.assertIn('Heisenberg', user_list[1].object.first_name)
57   - self.assertIn('Norris', user_list[1].object.last_name)
58   - self.assertIn('heisenbergnorris', user_list[1].object.username)
59   -
60   - self.assertIn('chucknorris@mail.com', user_list[0].object.email)
61   - self.assertIn('Chuck', user_list[0].object.first_name)
62   - self.assertIn('Norris', user_list[0].object.last_name)
63   - self.assertIn('chucknorris', user_list[0].object.username)
64   -
65   - def test_search_plugin_filters(self):
66   - plugin_filter = {
67   - 'plugin_name': {
68   - 'name': 'PluginData',
69   - 'icon': 'plugin_icon',
70   - 'fields': (
71   - ('field_1', 'Field1', ''),
72   - ('field_2', 'Field2', ''),
73   - ),
74   - },
75   - }
76   - filters_importer.import_plugin_filters = mock.Mock(
77   - return_value=plugin_filter)
78   -
79   - request = self.client.get('/search/?q=')
80   -
81   - value = [('plugin_name', 'PluginData', 'plugin_icon')]
82   -
83   - self.assertEqual(request.context['filters_options'], value)
84   -
85   - def test_search_dynamic_form_fields(self):
86   - plugin_filter = {
87   - 'plugin_name': {
88   - 'name': 'PluginData',
89   - 'icon': 'plugin_icon',
90   - 'fields': (
91   - ('field_1', 'Field1', ''),
92   - ('field_2', 'Field2', ''),
93   - ),
94   - },
95   - }
96   - filters_importer.import_plugin_filters = mock.Mock(
97   - return_value=plugin_filter)
98   -
99   - form = ColabSearchForm()
100   -
101   - self.assertIn('field_1', form.fields.keys())
102   - self.assertIn('field_2', form.fields.keys())
103   -
104   - def test_search_multiple_filters(self):
105   - request = self.client.get('/search/?q=&type=thread+user')
106   - user_list = request.context['page'].object_list
107   -
108   - self.assertEqual(6, len(user_list))
109   -
110   - self.assertIn('admin@mail.com', user_list[0].object.email)
111   - self.assertIn('admin', user_list[0].object.username)
112   -
113   - self.assertIn('chucknorris@mail.com', user_list[1].object.email)
114   - self.assertIn('Chuck', user_list[1].object.first_name)
115   - self.assertIn('Norris', user_list[1].object.last_name)
116   - self.assertIn('chucknorris', user_list[1].object.username)
117   -
118   - self.assertIn('heisenberg@mail.com', user_list[2].object.email)
119   - self.assertIn('Heisenberg', user_list[2].object.first_name)
120   - self.assertIn('Norris', user_list[2].object.last_name)
121   - self.assertIn('heisenbergnorris', user_list[2].object.username)
122   -
123   - self.assertIn('Admin Administrator', user_list[3].author)
124   - self.assertIn('Response to Thread 1A', user_list[3].title)
125   -
126   - self.assertIn('Admin Administrator', user_list[4].author)
127   - self.assertIn('Message 1 on Thread 1B', user_list[4].title)
128   -
129   - self.assertIn('Admin Administrator', user_list[5].author)
130   - self.assertIn('Message 1 on Thread 1C', user_list[5].title)
colab/search/tests/__init__.py 0 → 100644
colab/search/tests/test_search_view.py 0 → 100644
... ... @@ -0,0 +1,130 @@
  1 +# -*- coding:utf-8 -*-
  2 +
  3 +import mock
  4 +
  5 +from colab.plugins.utils import filters_importer
  6 +from django.test import TestCase, Client
  7 +from django.core.management import call_command
  8 +from colab.search.forms import ColabSearchForm
  9 +
  10 +
  11 +class SearchViewTest(TestCase):
  12 +
  13 + fixtures = ['test_data.json']
  14 +
  15 + def setUp(self):
  16 + call_command('rebuild_index', interactive=False, verbosity=0)
  17 + self.client = Client()
  18 +
  19 + def tearDown(self):
  20 + call_command('clear_index', interactive=False, verbosity=0)
  21 +
  22 + def test_search_thread(self):
  23 + request = self.client.get('/search/?q=thread')
  24 + thread_list = request.context['page'].object_list
  25 +
  26 + self.assertEqual(3, len(thread_list))
  27 +
  28 + condition = any('This is a repply to Thread 1 on list A' in
  29 + t.description for t in thread_list)
  30 + self.assertTrue(condition)
  31 + condition = any('This is a repply to Thread 1 on list B' in
  32 + t.description for t in thread_list)
  33 + self.assertTrue(condition)
  34 + condition = any('This is a repply to Thread 1 on list C' in
  35 + t.description for t in thread_list)
  36 + self.assertTrue(condition)
  37 +
  38 + def test_search_account_by_firstName(self):
  39 + request = self.client.get('/search/?q=Chuck')
  40 + user_list = request.context['page'].object_list
  41 +
  42 + self.assertEqual(1, len(user_list))
  43 +
  44 + self.assertIn('chucknorris@mail.com', user_list[0].object.email)
  45 + self.assertIn('Chuck', user_list[0].object.first_name)
  46 + self.assertIn('Norris', user_list[0].object.last_name)
  47 + self.assertIn('chucknorris', user_list[0].object.username)
  48 +
  49 + def test_search_account_by_lastName(self):
  50 + request = self.client.get('/search/?q=Norris')
  51 + user_list = request.context['page'].object_list
  52 +
  53 + self.assertEqual(2, len(user_list))
  54 +
  55 + self.assertIn('heisenberg@mail.com', user_list[1].object.email)
  56 + self.assertIn('Heisenberg', user_list[1].object.first_name)
  57 + self.assertIn('Norris', user_list[1].object.last_name)
  58 + self.assertIn('heisenbergnorris', user_list[1].object.username)
  59 +
  60 + self.assertIn('chucknorris@mail.com', user_list[0].object.email)
  61 + self.assertIn('Chuck', user_list[0].object.first_name)
  62 + self.assertIn('Norris', user_list[0].object.last_name)
  63 + self.assertIn('chucknorris', user_list[0].object.username)
  64 +
  65 + def test_search_plugin_filters(self):
  66 + plugin_filter = {
  67 + 'plugin_name': {
  68 + 'name': 'PluginData',
  69 + 'icon': 'plugin_icon',
  70 + 'fields': (
  71 + ('field_1', 'Field1', ''),
  72 + ('field_2', 'Field2', ''),
  73 + ),
  74 + },
  75 + }
  76 + filters_importer.import_plugin_filters = mock.Mock(
  77 + return_value=plugin_filter)
  78 +
  79 + request = self.client.get('/search/?q=')
  80 +
  81 + value = [('plugin_name', 'PluginData', 'plugin_icon')]
  82 +
  83 + self.assertEqual(request.context['filters_options'], value)
  84 +
  85 + def test_search_dynamic_form_fields(self):
  86 + plugin_filter = {
  87 + 'plugin_name': {
  88 + 'name': 'PluginData',
  89 + 'icon': 'plugin_icon',
  90 + 'fields': (
  91 + ('field_1', 'Field1', ''),
  92 + ('field_2', 'Field2', ''),
  93 + ),
  94 + },
  95 + }
  96 + filters_importer.import_plugin_filters = mock.Mock(
  97 + return_value=plugin_filter)
  98 +
  99 + form = ColabSearchForm()
  100 +
  101 + self.assertIn('field_1', form.fields.keys())
  102 + self.assertIn('field_2', form.fields.keys())
  103 +
  104 + def test_search_multiple_filters(self):
  105 + request = self.client.get('/search/?q=&type=thread+user')
  106 + user_list = request.context['page'].object_list
  107 +
  108 + self.assertEqual(6, len(user_list))
  109 +
  110 + self.assertIn('admin@mail.com', user_list[0].object.email)
  111 + self.assertIn('admin', user_list[0].object.username)
  112 +
  113 + self.assertIn('chucknorris@mail.com', user_list[1].object.email)
  114 + self.assertIn('Chuck', user_list[1].object.first_name)
  115 + self.assertIn('Norris', user_list[1].object.last_name)
  116 + self.assertIn('chucknorris', user_list[1].object.username)
  117 +
  118 + self.assertIn('heisenberg@mail.com', user_list[2].object.email)
  119 + self.assertIn('Heisenberg', user_list[2].object.first_name)
  120 + self.assertIn('Norris', user_list[2].object.last_name)
  121 + self.assertIn('heisenbergnorris', user_list[2].object.username)
  122 +
  123 + self.assertIn('Admin Administrator', user_list[3].author)
  124 + self.assertIn('Response to Thread 1A', user_list[3].title)
  125 +
  126 + self.assertIn('Admin Administrator', user_list[4].author)
  127 + self.assertIn('Message 1 on Thread 1B', user_list[4].title)
  128 +
  129 + self.assertIn('Admin Administrator', user_list[5].author)
  130 + self.assertIn('Message 1 on Thread 1C', user_list[5].title)
... ...
colab/search/tests/test_templatetags.py 0 → 100644
... ... @@ -0,0 +1,34 @@
  1 +# -*- coding:utf-8 -*-
  2 +
  3 +from django.test import TestCase
  4 +from colab.search.templatetags.search_preview_templates import (
  5 + get_search_preview_templates)
  6 +from mock import MagicMock, PropertyMock
  7 +
  8 +
  9 +class SearchTemplateTagsTest(TestCase):
  10 +
  11 + def setUp(self):
  12 + self.model_indexed_mock = MagicMock()
  13 + self.template_path = "{}/{}_search_preview.html"
  14 +
  15 + def set_mock_value(self, value):
  16 + type(self.model_indexed_mock).type = PropertyMock(return_value=value)
  17 +
  18 + def test_get_search_preview_templates_with_user(self):
  19 + self.set_mock_value("user")
  20 + include_path = get_search_preview_templates(self.model_indexed_mock)
  21 + self.assertEqual(include_path, self.template_path.format("accounts",
  22 + "user"))
  23 +
  24 + def test_get_search_preview_templates_with_thread(self):
  25 + self.set_mock_value("thread")
  26 + include_path = get_search_preview_templates(self.model_indexed_mock)
  27 + self.assertEqual(include_path,
  28 + self.template_path.format("superarchives", "thread"))
  29 +
  30 + def test_get_search_preview_templates_with_plugin(self):
  31 + self.set_mock_value("plugin_model")
  32 + include_path = get_search_preview_templates(self.model_indexed_mock)
  33 + self.assertEqual(include_path, self.template_path.format("plugin",
  34 + "model"))
... ...