コード例 #1
0
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)
コード例 #2
0
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',
コード例 #3
0
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())
コード例 #4
0
            {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)
        
コード例 #5
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)