def test_handle_add(self): from seantisinvoice.models import Invoice from seantisinvoice.models import DBSession from seantisinvoice.views.invoice import InvoiceController # Register route for redirect in invoice form actions testing.registerRoute('/', 'invoices', factory=None) # Each invoice belongs to a customer, thus add one. customer = self._add_customer() request = testing.DummyRequest() view = InvoiceController(None, request) data = view.form_defaults() data['customer_contact_id'] = customer.contacts[0].id data['project_description'] = u'Project name' data['recurring_term'] = 30 data['date'] = datetime.date(2010, 1, 18) data['item_list'] = [ dict(item_id='', service_title=u'Testing', service_description=u'Work', amount=2000.0) ] view.handle_add(data) session = DBSession() invoice = session.query(Invoice).one() self.assertEquals(u'Project name', invoice.project_description) self.assertEquals(customer.contacts[0], invoice.contact) self.assertEquals(1, len(invoice.items)) self.assertEquals(u'Testing', invoice.items[0].service_title)
def test_handle_cancel(self): from seantisinvoice.views.invoice import InvoiceController from seantisinvoice import statusmessage # Register route for redirect in customer form actions testing.registerRoute('/', 'invoices', factory=None) request = testing.DummyRequest() request.environ['qc.statusmessage'] = [] view = InvoiceController(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_cancel(self): from seantisinvoice.views.invoice import InvoiceController from seantisinvoice import statusmessage # Register route for redirect in customer form actions testing.registerRoute("/", "invoices", factory=None) request = testing.DummyRequest() request.environ["qc.statusmessage"] = [] view = InvoiceController(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_submit(self): from seantisinvoice.views.invoice import InvoiceController from seantisinvoice import statusmessage # Register route for redirect in invoice form actions testing.registerRoute('/', 'invoices', factory=None) # Create an invoice invoice = self._add_invoice() request = testing.DummyRequest() request.matchdict = dict(invoice=str(invoice.id)) view = InvoiceController(None, request) data = view.form_defaults() self.assertEquals(u'Project', data['project_description']) # Change some of the invoice date data['project_description'] = u'My project' data['recurring_term'] = 30 data['item_list'][0]['service_title'] = u'My service' view.handle_submit(data) data = view.form_defaults() self.assertEquals(u'My project', data['project_description']) self.assertEquals(u'My service', data['item_list'][0]['service_title']) # Add an additional invoice item data['item_list'].append( dict(item_id='', service_title=u'Training', service_description=u'', amount=200.0)) view.handle_submit(data) data = view.form_defaults() self.assertEquals(u'Training', data['item_list'][1]['service_title']) # Reorder the items data['item_list'][0] = view.form_defaults()['item_list'][1] data['item_list'][1] = view.form_defaults()['item_list'][0] view.handle_submit(data) data = view.form_defaults() self.assertEquals(u'Training', data['item_list'][0]['service_title']) # And remove one of them del data['item_list'][0] view.handle_submit(data) data = view.form_defaults() self.assertEquals(1, len(data['item_list'])) self.assertEquals(u'My service', data['item_list'][0]['service_title']) # Submit without changing anything request = testing.DummyRequest() request.environ['qc.statusmessage'] = [] request.matchdict = dict(invoice=str(invoice.id)) view = InvoiceController(None, request) view.handle_submit(data) msgs = statusmessage.messages(request) self.assertEquals(1, len(msgs)) self.assertEquals(u"No changes saved.", msgs[0].msg)
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_handle_submit(self): from seantisinvoice.views.invoice import InvoiceController from seantisinvoice import statusmessage # Register route for redirect in invoice form actions testing.registerRoute("/", "invoices", factory=None) # Create an invoice invoice = self._add_invoice() request = testing.DummyRequest() request.matchdict = dict(invoice=str(invoice.id)) view = InvoiceController(None, request) data = view.form_defaults() self.assertEquals(u"Project", data["project_description"]) # Change some of the invoice date data["project_description"] = u"My project" data["recurring_term"] = 30 data["item_list"][0]["service_title"] = u"My service" view.handle_submit(data) data = view.form_defaults() self.assertEquals(u"My project", data["project_description"]) self.assertEquals(u"My service", data["item_list"][0]["service_title"]) # Add an additional invoice item data["item_list"].append(dict(item_id="", service_title=u"Training", service_description=u"", amount=200.0)) view.handle_submit(data) data = view.form_defaults() self.assertEquals(u"Training", data["item_list"][1]["service_title"]) # Reorder the items data["item_list"][0] = view.form_defaults()["item_list"][1] data["item_list"][1] = view.form_defaults()["item_list"][0] view.handle_submit(data) data = view.form_defaults() self.assertEquals(u"Training", data["item_list"][0]["service_title"]) # And remove one of them del data["item_list"][0] view.handle_submit(data) data = view.form_defaults() self.assertEquals(1, len(data["item_list"])) self.assertEquals(u"My service", data["item_list"][0]["service_title"]) # Submit without changing anything request = testing.DummyRequest() request.environ["qc.statusmessage"] = [] request.matchdict = dict(invoice=str(invoice.id)) view = InvoiceController(None, request) view.handle_submit(data) 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_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_handle_submit(self): from seantisinvoice.views.company import CompanyController from seantisinvoice import statusmessage # Register route for redirect in company form actions testing.registerRoute('/company', 'company', factory=None) request = testing.DummyRequest() request.environ['qc.statusmessage'] = [] view = CompanyController(None, request) # All defaults must initially be empty default_values = view.form_defaults() self.assertEquals(None, default_values['name']) # Set all required fields self._set_company_profile() # Defaults must be set default_values = view.form_defaults() self.assertEquals(u'Example Inc.', default_values['name']) # Change company name through the form view.handle_submit(dict(name=u'Seantis GmbH')) default_values = view.form_defaults() self.assertEquals(u'Seantis GmbH', default_values['name']) # Check status message msgs = statusmessage.messages(request) self.assertEquals(1, len(msgs)) self.assertEquals(u"Changes saved.", msgs[0].msg) # Submit without changing anything view.handle_submit(default_values) msgs = statusmessage.messages(request) self.assertEquals(1, len(msgs)) self.assertEquals(u"No changes saved.", msgs[0].msg) # Logo upload from os.path import join, dirname from schemaish.type import File logo_path = join(dirname(__file__), 'views', 'templates', 'static', 'uploads', 'test_logo.jpg') default_values['logo'] = File(open(logo_path, 'rb'), 'logo.jpg', 'image/jpeg') view.handle_submit(default_values)
def test_handle_submit(self): from seantisinvoice.views.company import CompanyController from seantisinvoice import statusmessage # Register route for redirect in company form actions testing.registerRoute("/company", "company", factory=None) request = testing.DummyRequest() request.environ["qc.statusmessage"] = [] view = CompanyController(None, request) # All defaults must initially be empty default_values = view.form_defaults() self.assertEquals(None, default_values["name"]) # Set all required fields self._set_company_profile() # Defaults must be set default_values = view.form_defaults() self.assertEquals(u"Example Inc.", default_values["name"]) # Change company name through the form view.handle_submit(dict(name=u"Seantis GmbH")) default_values = view.form_defaults() self.assertEquals(u"Seantis GmbH", default_values["name"]) # Check status message msgs = statusmessage.messages(request) self.assertEquals(1, len(msgs)) self.assertEquals(u"Changes saved.", msgs[0].msg) # Submit without changing anything view.handle_submit(default_values) msgs = statusmessage.messages(request) self.assertEquals(1, len(msgs)) self.assertEquals(u"No changes saved.", msgs[0].msg) # Logo upload from os.path import join, dirname from schemaish.type import File logo_path = join(dirname(__file__), "views", "templates", "static", "uploads", "test_logo.jpg") default_values["logo"] = File(open(logo_path, "rb"), "logo.jpg", "image/jpeg") view.handle_submit(default_values)
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_handle_add(self): from seantisinvoice.models import Invoice from seantisinvoice.models import DBSession from seantisinvoice.views.invoice import InvoiceController # Register route for redirect in invoice form actions testing.registerRoute("/", "invoices", factory=None) # Each invoice belongs to a customer, thus add one. customer = self._add_customer() request = testing.DummyRequest() view = InvoiceController(None, request) data = view.form_defaults() data["customer_contact_id"] = customer.contacts[0].id data["project_description"] = u"Project name" data["recurring_term"] = 30 data["date"] = datetime.date(2010, 1, 18) data["item_list"] = [dict(item_id="", service_title=u"Testing", service_description=u"Work", amount=2000.0)] view.handle_add(data) session = DBSession() invoice = session.query(Invoice).one() self.assertEquals(u"Project name", invoice.project_description) self.assertEquals(customer.contacts[0], invoice.contact) self.assertEquals(1, len(invoice.items)) self.assertEquals(u"Testing", invoice.items[0].service_title)