def test_call(self): from seantisinvoice.views.customer import CustomerController request = testing.DummyRequest() # No customer with this id request.matchdict = dict(customer='2') view = CustomerController(None, request) result = view() self.assertEquals(404, result.status_int) # Add a customer customer = self._add_customer() request.matchdict = dict(customer=str(customer.id)) view = CustomerController(None, request) result = view() self.failUnless('main' in result.keys())
def test_handle_submit(self): from seantisinvoice.views.customer import CustomerController from seantisinvoice import statusmessage # Register route for redirect in customer form actions testing.registerRoute('/customers', 'customers', factory=None) # Add a customer customer = self._add_customer() request = testing.DummyRequest() request.matchdict = dict(customer=str(customer.id)) view = CustomerController(None, request) # Check default values default_values = view.form_defaults() self.assertEquals(u'Customers Inc.', default_values['name']) # Change the data default_values['name'] = u'Seantis GmbH' default_values['contact_list'][0]['first_name'] = u'Leopold' view.handle_submit(default_values) default_values = view.form_defaults() self.assertEquals(u'Seantis GmbH', default_values['name']) self.assertEquals(u'Leopold', default_values['contact_list'][0]['first_name']) # Add an additional contact contact_date = dict(first_name=u'Stephen', last_name=u'Dedalus', title=u'Mr.', contact_id='') default_values['contact_list'].append(contact_date) view.handle_submit(default_values) default_values = view.form_defaults() self.assertEquals(u'Stephen', default_values['contact_list'][1]['first_name']) # Remove one of the contacts del default_values['contact_list'][0] view.handle_submit(default_values) default_values = view.form_defaults() self.assertEquals(1, len(default_values['contact_list'])) # Contacts are alphabetically ordered. self.assertEquals(u'Stephen', default_values['contact_list'][0]['first_name']) # Submit without changing anything request = testing.DummyRequest() request.environ['qc.statusmessage'] = [] request.matchdict = dict(customer=str(customer.id)) view = CustomerController(None, request) view.handle_submit(default_values) msgs = statusmessage.messages(request) self.assertEquals(1, len(msgs)) self.assertEquals(u"No changes saved.", msgs[0].msg)
def test_form_fields(self): from seantisinvoice.views.customer import CustomerController from seantisinvoice.views.customer import CustomerSchema request = testing.DummyRequest() view = CustomerController(None, request) fields = view.form_fields() self.assertEquals(CustomerSchema.attrs, fields)
def test_handle_cancel(self): from seantisinvoice.views.customer import CustomerController from seantisinvoice import statusmessage # Register route for redirect in customer form actions testing.registerRoute('/customers', 'customers', factory=None) request = testing.DummyRequest() request.environ['qc.statusmessage'] = [] view = CustomerController(None, request) view.handle_cancel() msgs = statusmessage.messages(request) self.assertEquals(1, len(msgs)) self.assertEquals(u"No changes saved.", msgs[0].msg)
def test_handle_add(self): from seantisinvoice.models import Customer from seantisinvoice.models import DBSession from seantisinvoice.views.customer import CustomerController # Register route for redirect in customer form actions testing.registerRoute('/customers', 'customers', factory=None) request = testing.DummyRequest() view = CustomerController(None, request) # Add a new customer data = dict(name=u'Customers Inc.', address1=u'Street', postal_code=u'12234', city=u'Dublin') data['contact_list'] = [ dict(first_name=u'Buck', last_name=u'Mulligan', title=u'Mr.', contact_id='') ] view.handle_add(data) session = DBSession() customer = session.query(Customer).one() self.assertEquals(u'Customers Inc.', customer.name) self.assertEquals(u'Buck', customer.contacts[0].first_name)
def test_form_widgets(self): from seantisinvoice.views.customer import CustomerController request = testing.DummyRequest() view = CustomerController(None, request) widgets = view.form_widgets(view.form_fields()) self.failIf(widgets['contact_list'].sortable)