def test_numresults_withkind(self): def dummy_factory(context, request, term): return DummyGroupSearchFactory( lambda x: testing.DummyModel(title='yo')) from repoze.lemonade.testing import registerListItem from karl.models.interfaces import IGroupSearchFactory registerListItem(IGroupSearchFactory, dummy_factory, 'foo_kind', title='Dummy') context = testing.DummyModel() request = testing.DummyRequest() request.params = { 'val': 'somesearch', 'kind': 'foo_kind', } def dummy_adapter(context, request): return dict(title=context.title) from karl.views.interfaces import ILiveSearchEntry karltesting.registerAdapter(dummy_adapter, (testing.DummyModel, testing.DummyRequest), ILiveSearchEntry) response = self._callFUT(context, request) self.assertEqual(response.status, '200 OK') from simplejson import loads results = loads(response.body) self.assertEqual(response.content_type, 'application/json') self.assertEqual(len(results), 20)
def test_with_parameter_withresults(self): def dummy_factory1(context, request, term): pass def dummy_factory2(context, request, term): def results(): return 1, [1], lambda x: testing.DummyModel(title='yo') return results from repoze.lemonade.testing import registerListItem from opencore.models.interfaces import IGroupSearchFactory registerListItem(IGroupSearchFactory, dummy_factory1, 'dummy1', title='Dummy1', sort_key=1) registerListItem(IGroupSearchFactory, dummy_factory2, 'dummy2', title='Dummy2', sort_key=2) context = testing.DummyModel() request = testing.DummyRequest() dummycontent = testing.DummyModel() request.params = { 'val': 'somesearch', } response = self._callFUT(context, request) self.assertEqual(response.status, '200 OK') from simplejson import loads results = loads(response.body) self.assertEqual(len(results), 3) self.assertEqual(results[0]['rowclass'], 'showall') self.assertEqual(results[0]['header'], '') self.assertEqual(results[0]['title'], 'Show All') self.assertEqual(results[1]['header'], 'Dummy2') self.assertEqual(results[1]['title'], 'yo') self.assertEqual(response.content_type, 'application/x-json')
def test_with_parameter_noresults(self): def dummy_factory(context, request, term): def results(): return 0, [], None return results from repoze.lemonade.testing import registerListItem from opencore.models.interfaces import IGroupSearchFactory registerListItem(IGroupSearchFactory, dummy_factory, 'dummy1', title='Dummy1', sort_key=1) context = testing.DummyModel() request = testing.DummyRequest() dummycontent = testing.DummyModel() request.params = { 'val': 'somesearch', } response = self._callFUT(context, request) self.assertEqual(response.status, '200 OK') from simplejson import loads results = loads(response.body) self.assertEqual(len(results), 2) self.assertEqual(results[0]['rowclass'], 'showall') self.assertEqual(results[0]['header'], '') self.assertEqual(results[0]['title'], 'Show All') self.assertEqual(results[1]['header'], 'Dummy1') self.assertEqual(results[1]['title'], 'No Result')
def test_with_parameter_withresults(self): from repoze.lemonade.testing import registerListItem from karl.models.interfaces import IGroupSearchFactory from karl.views.interfaces import ILiveSearchEntry def dummy_factory1(context, request, term): pass def dummy_factory2(context, request, term): def results(): return 1, [1], lambda x: testing.DummyModel(title='yo') return results dummy_factory1.livesearch_all = dummy_factory2.livesearch_all = True registerListItem(IGroupSearchFactory, dummy_factory1, 'dummy1', title='Dummy1', sort_key=1) registerListItem(IGroupSearchFactory, dummy_factory2, 'dummy2', title='Dummy2', sort_key=2) context = testing.DummyModel() request = testing.DummyRequest() request.params = { 'val': 'somesearch', } def dummy_adapter(context, request): return dict(title=context.title) karltesting.registerAdapter(dummy_adapter, (testing.DummyModel, testing.DummyRequest), ILiveSearchEntry) results = self._callFUT(context, request) self.assertEqual(len(results), 1) self.assertEqual(results[0]['title'], 'yo')
def test_with_parameter_noresults(self): def dummy_factory(context, request, term): def results(): return 0, [], None return results from repoze.lemonade.testing import registerListItem from karl.models.interfaces import IGroupSearchFactory dummy_factory.livesearch = True registerListItem(IGroupSearchFactory, dummy_factory, 'dummy1', title='Dummy1', sort_key=1) context = testing.DummyModel() request = testing.DummyRequest() request.params = { 'val': 'somesearch', } response = self._callFUT(context, request) self.assertEqual(response.status, '200 OK') from simplejson import loads results = loads(response.body) self.assertEqual(len(results), 0)
def test_numresults_nokind(self): def dummy_factory(context, request, term): return DummyGroupSearchFactory(lambda x: testing.DummyModel(title="yo")) from repoze.lemonade.testing import registerListItem from karl.models.interfaces import IGroupSearchFactory dummy_factory.livesearch = True registerListItem(IGroupSearchFactory, dummy_factory, "dummy", title="Dummy") context = testing.DummyModel() request = testing.DummyRequest() request.params = {"val": "somesearch"} def dummy_adapter(context, request): return dict(title=context.title) from karl.views.interfaces import ILiveSearchEntry karltesting.registerAdapter(dummy_adapter, (testing.DummyModel, testing.DummyRequest), ILiveSearchEntry) response = self._callFUT(context, request) self.assertEqual(response.status, "200 OK") from simplejson import loads results = loads(response.body) self.assertEqual(response.content_type, "application/json") self.assertEqual(len(results), 5)
def test_with_parameter_withresults_withkind(self): def dummy_factory(context, request, term): def results(): return 1, [1], lambda x: testing.DummyModel(title="yo") return results from repoze.lemonade.testing import registerListItem from karl.models.interfaces import IGroupSearchFactory registerListItem(IGroupSearchFactory, dummy_factory, "foo_kind", title="Dummy") context = testing.DummyModel() request = testing.DummyRequest() request.params = {"val": "somesearch", "kind": "foo_kind"} def dummy_adapter(context, request): return dict(title=context.title) from karl.views.interfaces import ILiveSearchEntry karltesting.registerAdapter(dummy_adapter, (testing.DummyModel, testing.DummyRequest), ILiveSearchEntry) response = self._callFUT(context, request) self.assertEqual(response.status, "200 OK") from simplejson import loads results = loads(response.body) self.assertEqual(len(results), 1) self.assertEqual(results[0]["title"], "yo") self.assertEqual(response.content_type, "application/json")
def test_with_parameter_withresults(self): from repoze.lemonade.testing import registerListItem from karl.models.interfaces import IGroupSearchFactory from karl.views.interfaces import ILiveSearchEntry def dummy_factory1(context, request, term): pass def dummy_factory2(context, request, term): def results(): return 1, [1], lambda x: testing.DummyModel(title='yo') return results dummy_factory1.livesearch = dummy_factory2.livesearch = True dummy_factory1.livesearch_all = dummy_factory2.livesearch_all = True registerListItem(IGroupSearchFactory, dummy_factory1, 'dummy1', title='Dummy1', sort_key=1) registerListItem(IGroupSearchFactory, dummy_factory2, 'dummy2', title='Dummy2', sort_key=2) context = testing.DummyModel() request = testing.DummyRequest() request.params = { 'val': 'somesearch', } def dummy_adapter(context, request): return dict(title=context.title) karltesting.registerAdapter(dummy_adapter, (testing.DummyModel, testing.DummyRequest), ILiveSearchEntry) results = self._callFUT(context, request) self.assertEqual(len(results), 1) self.assertEqual(results[0]['title'], 'yo')
def test_tabs_requestcontext_iscommunity(self): from karl.models.interfaces import ICommunity from karl.models.interfaces import IToolFactory from repoze.lemonade.testing import registerListItem from zope.interface import directlyProvides tool_factory = DummyToolFactory() registerListItem(IToolFactory, tool_factory, 'one', title='One') context = self._makeCommunity() directlyProvides(context, ICommunity) request = testing.DummyRequest() request.context = context adapter = self._makeOne(context, request) tabs = adapter.tabs self.assertEqual(len(tabs), 2) self.assertEqual( tabs[0], { 'url': 'http://example.com/view.html', 'css_class': 'curr', 'name': 'OVERVIEW' }) self.assertEqual(tabs[1], { 'url': 'http://example.com/tab', 'css_class': '', 'name': 'ONE' })
def test_with_parameter_withresults(self): def dummy_factory1(context, request, term): pass def dummy_factory2(context, request, term): def results(): return 1, [1], lambda x: testing.DummyModel(title='yo') return results dummy_factory1.livesearch = dummy_factory2.livesearch = True from repoze.lemonade.testing import registerListItem from karl.models.interfaces import IGroupSearchFactory registerListItem(IGroupSearchFactory, dummy_factory1, 'dummy1', title='Dummy1', sort_key=1) registerListItem(IGroupSearchFactory, dummy_factory2, 'dummy2', title='Dummy2', sort_key=2) context = testing.DummyModel() request = testing.DummyRequest() request.params = { 'val': 'somesearch', } def dummy_adapter(context, request): return dict(title=context.title) from karl.views.interfaces import ILiveSearchEntry karltesting.registerAdapter(dummy_adapter, (testing.DummyModel, testing.DummyRequest), ILiveSearchEntry) response = self._callFUT(context, request) self.assertEqual(response.status, '200 OK') from simplejson import loads results = loads(response.body) self.assertEqual(len(results), 1) self.assertEqual(results[0]['title'], 'yo') self.assertEqual(response.content_type, 'application/json')
def test_with_kind_with_body(self): from opencore.models.interfaces import IGroupSearchFactory from repoze.lemonade.testing import registerListItem from webob.multidict import MultiDict content = DummyContent() def search_factory(*arg, **kw): return DummySearchFactory(content) registerListItem(IGroupSearchFactory, search_factory, 'dummy1', title='Dummy1', sort_key=1) request = testing.DummyRequest( params=MultiDict({'body':'yo', 'kind':'dummy1'})) context = testing.DummyModel() result = self._callFUT(context, request) self.assertEqual(result[0]['total'], 1)
def test_with_kind_without_body(self): from opencore.models.interfaces import IGroupSearchFactory from repoze.lemonade.testing import registerListItem from webob.multidict import MultiDict def dummy_factory(context, request, term): def results(): return 0, [], None return results registerListItem(IGroupSearchFactory, dummy_factory, 'dummy1', title='Dummy1', sort_key=1) request = testing.DummyRequest( params=MultiDict({'kind':'dummy1'})) context = testing.DummyModel() result = self._callFUT(context, request) self.assertEqual(result, (None, ()))
def test_with_parameter_withresults_withbadkind(self): def dummy_factory(context, request, term): def results(): return 1, [1], lambda x: testing.DummyModel(title="yo") return results from repoze.lemonade.testing import registerListItem from karl.models.interfaces import IGroupSearchFactory registerListItem(IGroupSearchFactory, dummy_factory, "foo_kind", title="Dummy") context = testing.DummyModel() request = testing.DummyRequest() request.params = {"val": "somesearch", "kind": "bad_kind"} response = self._callFUT(context, request) self.assertEqual(response.status, "400 Bad Request")
def test_with_kind_with_body(self): from karl.models.interfaces import ICatalogSearch from karl.models.interfaces import IGroupSearchFactory from repoze.lemonade.testing import registerListItem from webob.multidict import MultiDict content = DummyContent() def search_factory(*arg, **kw): return DummySearchFactory(content) registerListItem(IGroupSearchFactory, search_factory, 'dummy1', title='Dummy1', sort_key=1) karltesting.registerAdapter(DummySearch, (Interface), ICatalogSearch) request = testing.DummyRequest( params=MultiDict({'body':'yo', 'kind':'dummy1'})) context = testing.DummyModel() result = self._callFUT(context, request) self.assertEqual(result[0]['total'], 1)
def test_with_parameter_withresults_withbadkind(self): from repoze.lemonade.testing import registerListItem from karl.models.interfaces import IGroupSearchFactory def dummy_factory(context, request, term): def results(): return 1, [1], lambda x: testing.DummyModel(title='yo') return results registerListItem(IGroupSearchFactory, dummy_factory, 'foo_kind', title='Dummy') context = testing.DummyModel() request = testing.DummyRequest() request.params = { 'val': 'somesearch', 'kind': 'bad_kind', } response = self._callFUT(context, request) self.assertEqual(response.status, '400 Bad Request')
def test_with_kind_with_body(self): from karl.models.interfaces import ICatalogSearch from karl.models.interfaces import IGroupSearchFactory from repoze.lemonade.testing import registerListItem from webob.multidict import MultiDict content = DummyContent() def search_factory(*arg, **kw): return DummySearchFactory(content) registerListItem(IGroupSearchFactory, search_factory, "dummy1", title="Dummy1", sort_key=1) karltesting.registerAdapter(DummySearch, (Interface), ICatalogSearch) request = testing.DummyRequest(params=MultiDict({"body": "yo", "kind": "dummy1"})) context = testing.DummyModel() result = self._callFUT(context, request) self.assertEqual(result[0]["total"], 1)
def test_with_parameter_noresults(self): from repoze.lemonade.testing import registerListItem from karl.models.interfaces import IGroupSearchFactory def dummy_factory(context, request, term): def results(): return 0, [], None return results dummy_factory.livesearch_all = True registerListItem(IGroupSearchFactory, dummy_factory, 'dummy1', title='Dummy1', sort_key=1) context = testing.DummyModel() request = testing.DummyRequest() request.params = { 'val': 'somesearch', } results = self._callFUT(context, request) self.assertEqual(len(results), 0)
def test_with_kind_without_body(self): from karl.models.interfaces import ICatalogSearch from karl.models.interfaces import IGroupSearchFactory from repoze.lemonade.testing import registerListItem from webob.multidict import MultiDict def dummy_factory(context, request, term): def results(): return 0, [], None results.criteria = {'foo': 'bar'} return results registerListItem(IGroupSearchFactory, dummy_factory, 'dummy1', title='Dummy1', sort_key=1) karltesting.registerAdapter(DummySearch, (Interface), ICatalogSearch) request = testing.DummyRequest( params=MultiDict({'kind':'dummy1'})) context = testing.DummyModel() result = self._callFUT(context, request) self.assertEqual(result[0]['total'], 1)
def _callFUT(self, provides, component, name, title=None, description=None, sort_key=0): from repoze.lemonade.testing import registerListItem return registerListItem(provides, component, name, title, description, sort_key)
def test_tabs_requestcontext_is_not_community(self): from karl.models.interfaces import IToolFactory from repoze.lemonade.testing import registerListItem tool_factory = DummyToolFactory() registerListItem(IToolFactory, tool_factory, 'one', title='One') context = self._makeCommunity() request = testing.DummyRequest() request.context = context adapter = self._makeOne(context, request) tabs = adapter.tabs self.assertEqual(len(tabs), 2) self.assertEqual(tabs[0], {'url': 'http://example.com/view.html', 'css_class': '', 'name': 'OVERVIEW'} ) self.assertEqual(tabs[1], {'url': 'http://example.com/tab', 'css_class': 'curr', 'name': 'ONE'} )
def test_with_parameter_noresults(self): def dummy_factory(context, request, term): def results(): return 0, [], None return results from repoze.lemonade.testing import registerListItem from karl.models.interfaces import IGroupSearchFactory dummy_factory.livesearch = True registerListItem(IGroupSearchFactory, dummy_factory, "dummy1", title="Dummy1", sort_key=1) context = testing.DummyModel() request = testing.DummyRequest() request.params = {"val": "somesearch"} response = self._callFUT(context, request) self.assertEqual(response.status, "200 OK") from simplejson import loads results = loads(response.body) self.assertEqual(len(results), 0)
def test_numresults_withkind(self): from repoze.lemonade.testing import registerListItem from karl.models.interfaces import IGroupSearchFactory from karl.views.interfaces import ILiveSearchEntry def dummy_factory(context, request, term): return DummyGroupSearchFactory( lambda x: testing.DummyModel(title='yo')) registerListItem(IGroupSearchFactory, dummy_factory, 'foo_kind', title='Dummy') context = testing.DummyModel() request = testing.DummyRequest() request.params = { 'val': 'somesearch', 'kind': 'foo_kind', } def dummy_adapter(context, request): return dict(title=context.title) karltesting.registerAdapter(dummy_adapter, (testing.DummyModel, testing.DummyRequest), ILiveSearchEntry) results = self._callFUT(context, request) self.assertEqual(len(results), 20)