def get_schema(self, submitted): """ Return the schema for CancelInvoice add/edition :param dict submitted: The submitted datas :returns: A colander.Schema """ excludes = ('status', 'children', 'parent',) return get_add_edit_cancelinvoice_schema(excludes=excludes)
def test_cancelinvoice_invoice_id(): schema = get_add_edit_cancelinvoice_schema(includes=('invoice_id',)) schema = schema.bind() value = {'invoice_id': 5} assert schema.deserialize(value) == value value = {} with pytest.raises(colander.Invalid): schema.deserialize(value)
class CancelInvoiceSetTreasuryiew(BaseEditView): """ View used to set treasury related informations context An invoice perms set_treasury.invoice """ factory = CancelInvoice schema = get_add_edit_cancelinvoice_schema( includes=('financial_year', ), title=u"Modifier l'année fiscale de référence du numéro de facture", ) def redirect(self): return HTTPFound( self.request.route_path("/invoices/{id}.html", id=self.context.id, _anchor="treasury")) def before(self, form): BaseEditView.before(self, form) self.request.actionmenu.add( ViewLink( label=u"Revenir à la facture", path="/invoices/{id}.html", id=self.context.id, _anchor="treasury", )) @property def title(self): return u"Facture numéro {0} en date du {1}".format( self.context.official_number, format_date(self.context.date), )
class CancelInvoiceAdminView(BaseEditView): factory = CancelInvoice schema = get_add_edit_cancelinvoice_schema(isadmin=True)
def test_cancelinvoice(request_with_config, config, cancelinvoice, tva, unity): schema = get_add_edit_cancelinvoice_schema() request_with_config.context = cancelinvoice schema = schema.bind(request=request_with_config) value = { "name": u"Avoir 1", 'date': datetime.date.today().isoformat(), 'address': u"adress", "description": u"description", "payment_conditions": u"Test", 'invoice_id': 5, 'financial_year': 2017, 'line_groups': [ { 'task_id': 5, 'title': u"title", 'description': u"description", "order": 5, 'lines': [ { 'cost': 15, 'tva': 20, 'description': u'description', 'unity': u"Mètre", "quantity": 5, "order": 2, } ] } ], } expected_value = { "name": u"Avoir 1", 'date': datetime.date.today(), 'address': u"adress", "description": u"description", "payment_conditions": u"Test", 'invoice_id': 5, 'financial_year': 2017, 'line_groups': [ { 'task_id': 5, 'title': u"title", 'description': u"description", "order": 5, 'lines': [ { 'cost': 1500000, 'tva': 2000, 'description': u'description', 'unity': u"Mètre", "quantity": 5.0, "order": 2, } ] } ], } # Check those values are valid result = schema.deserialize(value) for key, value in expected_value.items(): assert result[key] == value