def __init__(self, context, request): self.context = context self.request = request> self.data_svc = self.request.find_service(Data)E AttributeError: 'DummyRequest' object has no attribute 'find_service'from zope.interface import Interface
class Data(Interface): def get_companies(): passclass DBData(object): def get_companies(self): bpm_companies = DBSession.query(BPMCompany).filter(BPMCompany.status == 1).all()
return bpm_companiesclass MockData(object): def get_companies(self): bpm_companies = [{'company_name': 'ABC Corp'}, {'company_name': 'DEF Corp'}, {'company_name': 'Z Corp'}]
return bpm_companies...
config.include('pyramid_services')config.register_service(DBData(), Data)
...class BaseView(object): ... def __init__(self, context, request): self.context = context self.request = request self.data_svc = self.request.find_service(Data)
...class CompanyView(BaseView): @view_config(route_name='company', renderer='reporting/company.mako', permission='admin') def index(self): request = self.request
bpm_companies = self.data_svc.get_companies()
return {'companies': bpm_companies}from pyramid import testing
import pytest
from bpmreporting.views.company import CompanyView
from bpmreporting.services.services_test import MockDatafrom bpmreporting.services.interfaces import Data
@pytest.fixturedef config(): config = testing.setUp() config.include('pyramid_mako') config.include('pyramid_services') config.register_service(MockData(), Data) config.add_route('company', 'company') yield config testing.tearDown()
@pytest.fixturedef dummy_request(): return testing.DummyRequest()
@pytest.fixturedef dummy_context(): return testing.DummyResource()
# Make sure index is returning the proper list of company names. ie: The MockData list of dictionaries.def test_company_index_view(config, dummy_request, dummy_context): vw = CompanyView(dummy_context, dummy_request) response = vw.index() print(response) # assert 'report_type_options' in responseNever finished my sentence!
We were going to explore the pyramid.requests.Request, but we aren't sure how to implement it within a test.
--
You received this message because you are subscribed to the Google Groups "pylons-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscribe@googlegroups.com.
To post to this group, send email to pylons-discuss@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pylons-discuss/0acff96f-272a-467d-852f-313954a8e3b9%40googlegroups.com.