コード例 #1
0
 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)
コード例 #2
0
 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)
コード例 #3
0
ファイル: tests.py プロジェクト: seantis/seantisinvoice
    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)
コード例 #4
0
ファイル: tests.py プロジェクト: seantis/seantisinvoice
    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)