summaryrefslogtreecommitdiffstats
path: root/askbot/tests/search_state_tests.py
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2011-01-20 22:17:08 -0500
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2011-01-20 22:18:21 -0500
commit64838a9f2b1d208ba0b837550bc95956099aa7ff (patch)
tree5ef60773c0551f6ffa3f1785e911563bfb5c4e3f /askbot/tests/search_state_tests.py
parent6bf217eac5085ff5e543bf1714eb837930c0a1ba (diff)
downloadaskbot-64838a9f2b1d208ba0b837550bc95956099aa7ff.tar.gz
askbot-64838a9f2b1d208ba0b837550bc95956099aa7ff.tar.bz2
askbot-64838a9f2b1d208ba0b837550bc95956099aa7ff.zip
allowed removing search tags one-by-one, fixed a bug in the login system reported by Bill, removed snippet of unportable sql reported by Graeme and added support for proper i18n in javascript
Diffstat (limited to 'askbot/tests/search_state_tests.py')
-rw-r--r--askbot/tests/search_state_tests.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/askbot/tests/search_state_tests.py b/askbot/tests/search_state_tests.py
new file mode 100644
index 00000000..622ce378
--- /dev/null
+++ b/askbot/tests/search_state_tests.py
@@ -0,0 +1,49 @@
+from django.test import TestCase
+from askbot.search.state_manager import SearchState, ViewLog
+
+class SearchStateTests(TestCase):
+ def setUp(self):
+ self.state = SearchState()
+ self.log = ViewLog()
+
+ def visit_page(self, page_name):
+ """page_name is name of the view function
+ that is to be "visited"
+ """
+ self.log.set_current(page_name)
+
+ def update(self, data):
+ self.visit_page('questions')
+ self.state.update(data, self.log)
+
+ def add_tag(self, tag):
+ self.update({'tags': set([tag])})
+
+ def remove_tag(self, tag):
+ self.update({'remove_tag': tag})
+
+ def assert_tags_are(self, *args):
+ self.assertEqual(self.state.tags, set(args))
+
+ def test_add_remove_tags(self):
+ self.add_tag('tag1')
+ self.assert_tags_are('tag1')
+ self.add_tag('tag2')
+ self.assert_tags_are('tag1', 'tag2')
+ self.add_tag('tag3')
+ self.assert_tags_are('tag1', 'tag2', 'tag3')
+ self.remove_tag('tag3')
+ self.assert_tags_are('tag1', 'tag2')
+ self.remove_tag('tag2')
+ self.assert_tags_are('tag1')
+ self.remove_tag('tag1')
+ self.assertEqual(len(self.state.tags), 0)
+
+ def test_query_and_tags1(self):
+ self.update({'query': 'hahaha'})
+ self.add_tag('tag1')
+ self.assertEquals(self.state.query, 'hahaha')
+ self.assert_tags_are('tag1')
+ self.update({'reset_query':True})
+ self.assertEquals(self.state.query, None)
+ self.assert_tags_are('tag1')