from completion.backends.db_backend import DatabaseAutocomplete from completion.models import AutocompleteObject from completion.tests.base import AutocompleteTestCase from completion.tests.models import Blog, BlogProvider from completion.sites import AutocompleteSite test_site = AutocompleteSite(DatabaseAutocomplete()) test_site.register(Blog, BlogProvider) class DatabaseBackendTestCase(AutocompleteTestCase): def test_storing_providers(self): self.assertEqual(AutocompleteObject.objects.count(), 0) test_site.store_providers() self.assertEqual(AutocompleteObject.objects.count(), 6) titles = AutocompleteObject.objects.values_list('title', flat=True) self.assertEqual(sorted(titles), [ 'testingpython', 'testingpythoncode', 'testingpythoncode', 'testswithpython', 'unittestswith', 'webtestingpython', ]) def test_storing_objects(self): test_site.store_object(self.blog_tp) self.assertEqual(AutocompleteObject.objects.count(), 1)
from completion.backends.db_backend import DatabaseAutocomplete from completion.completion_tests.base import AutocompleteTestCase, AutocompleteBackendTestCase from completion.completion_tests.models import Blog, Note1, Note2, Note3, BlogProvider, NoteProvider from completion.models import AutocompleteObject from completion.sites import AutocompleteSite test_site = AutocompleteSite(DatabaseAutocomplete()) test_site.register(Blog, BlogProvider) test_site.register(Note1, NoteProvider) test_site.register(Note2, NoteProvider) test_site.register(Note3, NoteProvider) class DatabaseBackendTestCase(AutocompleteTestCase, AutocompleteBackendTestCase): def setUp(self): self.test_site = test_site AutocompleteTestCase.setUp(self) test_site.flush() def test_storing_providers(self): self.assertEqual(AutocompleteObject.objects.count(), 0) test_site.store_providers() self.assertEqual(AutocompleteObject.objects.count(), 14) titles = AutocompleteObject.objects.values_list('title', flat=True) self.assertEqual(sorted(titles), [ 'pythoncode', 'pythoncode', 'testingpython', 'testingpython', 'testingpython', 'testingpythoncode', 'testingpythoncode', 'testswith', 'testswithpython', 'unittests', 'unittestswith',
from completion.backends.django_redis_backend import DjangoRedisAutocomplete from completion.completion_tests.base import AutocompleteTestCase, AutocompleteBackendTestCase from completion.completion_tests.models import Blog, Note1, Note2, Note3, BlogProvider, NoteProvider from completion.sites import AutocompleteSite test_site = AutocompleteSite(DjangoRedisAutocomplete(prefix='test:ac:')) test_site.register(Blog, BlogProvider) test_site.register(Note1, NoteProvider) test_site.register(Note2, NoteProvider) test_site.register(Note3, NoteProvider) class DjangoRedisBackendTestCase(AutocompleteTestCase, AutocompleteBackendTestCase): def setUp(self): self.test_site = test_site AutocompleteTestCase.setUp(self) test_site.flush() def test_removing_objects_in_depth(self): # want to ensure that redis is cleaned up and does not become polluted # with spurious keys when objects are removed backend = test_site.backend redis_client = backend.client prefix = backend.prefix # store the blog "testing python" test_site.store_object(self.blog_tp) # see how many keys we have in the db - check again in a bit key_len = len(redis_client.keys())
{u'stored_title': u'note class-note1 number-2'}, {u'stored_title': u'note class-note3 number-0'}, {u'stored_title': u'note class-note3 number-1'}, {u'stored_title': u'note class-note3 number-2'} ]) ########NEW FILE######## __FILENAME__ = db_backend from completion.backends.db_backend import DatabaseAutocomplete from completion.completion_tests.base import AutocompleteTestCase, AutocompleteBackendTestCase from completion.completion_tests.models import Blog, Note1, Note2, Note3, BlogProvider, NoteProvider from completion.models import AutocompleteObject from completion.sites import AutocompleteSite test_site = AutocompleteSite(DatabaseAutocomplete()) test_site.register(Blog, BlogProvider) test_site.register(Note1, NoteProvider) test_site.register(Note2, NoteProvider) test_site.register(Note3, NoteProvider) class DatabaseBackendTestCase(AutocompleteTestCase, AutocompleteBackendTestCase): def setUp(self): self.test_site = test_site AutocompleteTestCase.setUp(self) test_site.flush() def test_storing_providers(self): self.assertEqual(AutocompleteObject.objects.count(), 0)
self._index[data['title']] = data def remove_object(self, obj, data): if data['title'] in self._index: del (self._index[data['title']]) def suggest(self, phrase, limit, models): if phrase in self._index: return [self._index[phrase]['data']] return [] def flush(self): self._index = {} test_site = AutocompleteSite(DummyBackend()) test_site.register(Blog, BlogProvider) test_site.register(Note1, DjNoteProvider) test_site.register(Note2, DjNoteProvider) test_site.register(Note3, DjNoteProvider) class SiteTestCase(AutocompleteTestCase): def test_registration(self): # make sure our registry is populated with the test provider self.assertEqual(len(test_site._providers), 4) self.assertTrue(Blog in test_site._providers) self.assertTrue(isinstance(test_site._providers[Blog], BlogProvider)) # make sure removing works test_site.unregister(Blog)