示例#1
0
    def test_only_items(self):
        invoice_path = os.path.join(self.file_base_dir, 'only_items.pdf')
        if os.path.exists(invoice_path):
            os.remove(invoice_path)

        invoice = SimpleInvoice(invoice_path)

        # Before add items
        item_data, item_subtotal = invoice._item_raw_data_and_subtotal()
        self.assertEqual(len(item_data), 0)
        self.assertEqual(item_subtotal, Decimal('0'))
        item_data, style = invoice._item_data_and_style()
        self.assertEqual(len(item_data), 0)
        self.assertEqual(style, [])

        # Add items
        invoice.add_item(Item('Item1', 'Item desc', 1, 1.1))
        invoice.add_item(Item('Item2', 'Item desc', 2, u'2.2'))
        invoice.add_item(Item(u'Item3', 'Item desc', 3, '3.3'))

        # After add items
        items = invoice.items
        self.assertEqual(len(items), 3)
        self.assertEqual(items[0].name, 'Item1')
        self.assertEqual(items[0].amount, Decimal('1.1'))
        self.assertEqual(items[1].amount, Decimal('4.4'))
        self.assertEqual(items[2].name, u'Item3')
        self.assertEqual(items[2].amount, Decimal('9.9'))

        item_data, item_subtotal = invoice._item_raw_data_and_subtotal()
        self.assertEqual(item_subtotal, Decimal('15.4'))
        self.assertEqual(len(item_data), 3)

        item_data, style = invoice._item_data_and_style()
        self.assertEqual(len(item_data), 6)  # header, subtotal, total
        self.assertEqual(item_data[-2][-1], Decimal('15.4'))  # subtotal
        self.assertEqual(item_data[-1][-1], Decimal('15.4'))  # total

        # test style
        # ## Subtotal
        self.assertEqual(style[-4], ('SPAN', (0, 4), (3, 4)))
        self.assertEqual(style[-3], ('ALIGN', (0, 4), (-2, -1), 'RIGHT'))
        # ## Total
        self.assertEqual(style[-2], ('SPAN', (0, 5), (3, 5)))
        self.assertEqual(style[-1], ('ALIGN', (0, 5), (-2, -1), 'RIGHT'))

        invoice.finish()

        self.assertTrue(os.path.exists(invoice_path))
示例#2
0
    def test_only_items(self):
        invoice_path = os.path.join(self.file_base_dir, 'only_items.pdf')
        if os.path.exists(invoice_path):
            os.remove(invoice_path)

        invoice = SimpleInvoice(invoice_path)

        # Before add items
        item_data, item_subtotal = invoice._item_raw_data_and_subtotal()
        self.assertEqual(len(item_data), 0)
        self.assertEqual(item_subtotal, Decimal('0'))
        item_data, style = invoice._item_data_and_style()
        self.assertEqual(len(item_data), 0)
        self.assertEqual(style, [])

        # Add items
        invoice.add_item(Item('Item1', 'Item desc', 1, 1.1))
        invoice.add_item(Item('Item2', 'Item desc', 2, u'2.2'))
        invoice.add_item(Item(u'Item3', 'Item desc', 3, '3.3'))

        # After add items
        items = invoice.items
        self.assertEqual(len(items), 3)
        self.assertEqual(items[0].name, 'Item1')
        self.assertEqual(items[0].amount, Decimal('1.1'))
        self.assertEqual(items[1].amount, Decimal('4.4'))
        self.assertEqual(items[2].name, u'Item3')
        self.assertEqual(items[2].amount, Decimal('9.9'))

        item_data, item_subtotal = invoice._item_raw_data_and_subtotal()
        self.assertEqual(item_subtotal, Decimal('15.4'))
        self.assertEqual(len(item_data), 3)

        item_data, style = invoice._item_data_and_style()
        self.assertEqual(len(item_data), 6)  # header, subtotal, total
        self.assertEqual(item_data[-2][-1], Decimal('15.4'))  # subtotal
        self.assertEqual(item_data[-1][-1], Decimal('15.4'))  # total

        # test style
        # ## Subtotal
        self.assertEqual(style[-4], ('SPAN', (0, 4), (3, 4)))
        self.assertEqual(style[-3], ('ALIGN', (0, 4), (-2, -1), 'RIGHT'))
        # ## Total
        self.assertEqual(style[-2], ('SPAN', (0, 5), (3, 5)))
        self.assertEqual(style[-1], ('ALIGN', (0, 5), (-2, -1), 'RIGHT'))

        invoice.finish()

        self.assertTrue(os.path.exists(invoice_path))
示例#3
0
    def test_only_items_with_tax_rate(self):
        invoice_path = os.path.join(self.file_base_dir,
                                    'only_items_with_tax.pdf')
        if os.path.exists(invoice_path):
            os.remove(invoice_path)

        invoice = SimpleInvoice(invoice_path)

        # Before add items
        item_data, item_subtotal = invoice._item_raw_data_and_subtotal()
        self.assertEqual(len(item_data), 0)
        self.assertEqual(item_subtotal, Decimal('0'))
        item_data, style = invoice._item_data_and_style()
        self.assertEqual(len(item_data), 0)
        self.assertEqual(style, [])

        # Add items
        invoice.add_item(Item('Item1', 'Item desc', 1, 1.1))
        invoice.add_item(Item('Item2', 'Item desc', 2, u'2.2'))
        invoice.add_item(Item(u'Item3', 'Item desc', 3, '3.3'))
        # set tax rate
        invoice.set_item_tax_rate(19)

        # After add items
        items = invoice.items
        self.assertEqual(len(items), 3)
        self.assertEqual(items[0].name, 'Item1')
        self.assertEqual(items[0].amount, Decimal('1.1'))
        self.assertEqual(items[1].amount, Decimal('4.4'))
        self.assertEqual(items[2].name, u'Item3')
        self.assertEqual(items[2].amount, Decimal('9.9'))

        item_data, item_subtotal = invoice._item_raw_data_and_subtotal()
        self.assertEqual(item_subtotal, Decimal('15.4'))
        self.assertEqual(len(item_data), 3)

        item_data, style = invoice._item_data_and_style()
        self.assertEqual(len(item_data), 7)  # header, subtotal, tax, total
        self.assertEqual(item_data[-3][-1], Decimal('15.4'))  # subtotal
        self.assertEqual(item_data[-2][-1], Decimal('2.93'))  # tax
        self.assertEqual(item_data[-1][-1], Decimal('18.33'))  # total

        invoice.finish()

        self.assertTrue(os.path.exists(invoice_path))
示例#4
0
    def test_only_items_with_tax_rate(self):
        invoice_path = os.path.join(self.file_base_dir, 'only_items_with_tax.pdf')
        if os.path.exists(invoice_path):
            os.remove(invoice_path)

        invoice = SimpleInvoice(invoice_path)

        # Before add items
        item_data, item_subtotal = invoice._item_raw_data_and_subtotal()
        self.assertEqual(len(item_data), 0)
        self.assertEqual(item_subtotal, Decimal('0'))
        item_data, style = invoice._item_data_and_style()
        self.assertEqual(len(item_data), 0)
        self.assertEqual(style, [])

        # Add items
        invoice.add_item(Item('Item1', 'Item desc', 1, 1.1))
        invoice.add_item(Item('Item2', 'Item desc', 2, u'2.2'))
        invoice.add_item(Item(u'Item3', 'Item desc', 3, '3.3'))
        # set tax rate
        invoice.set_item_tax_rate(19)

        # After add items
        items = invoice.items
        self.assertEqual(len(items), 3)
        self.assertEqual(items[0].name, 'Item1')
        self.assertEqual(items[0].amount, Decimal('1.1'))
        self.assertEqual(items[1].amount, Decimal('4.4'))
        self.assertEqual(items[2].name, u'Item3')
        self.assertEqual(items[2].amount, Decimal('9.9'))

        item_data, item_subtotal = invoice._item_raw_data_and_subtotal()
        self.assertEqual(item_subtotal, Decimal('15.4'))
        self.assertEqual(len(item_data), 3)

        item_data, style = invoice._item_data_and_style()
        self.assertEqual(len(item_data), 7)  # header, subtotal, tax, total
        self.assertEqual(item_data[-3][-1], Decimal('15.4'))  # subtotal
        self.assertEqual(item_data[-2][-1], Decimal('2.926'))  # tax
        self.assertEqual(item_data[-1][-1], Decimal('18.326'))  # total

        invoice.finish()

        self.assertTrue(os.path.exists(invoice_path))