def test_create_pdf(self): invoice_doc = self.wb.WorkSheets("請求書テンプレート") iv_data = invoice_util.get_excel_data(self.ws) iv = Invoice(iv_data[0]) iv_detail = InvoiceDetail(iv_data[0]) iv.add_detail(iv_detail) invoice_util.create_invoice_pdf(self.app, self.wb, invoice_doc, iv, "../pdf") f_list = glob.glob('../pdf/XXX株式会社*.pdf') self.assertEqual(len(f_list), 1)
def test_is_invoice_exist(self): iv_data = invoice_util.get_excel_data(self.ws) invoices = [] for row in iv_data: id = row[1] exist_invoice = invoice_util.get_invoice_from_list(invoices, id) if not exist_invoice: invoice_data = Invoice(row) invoice_data.add_detail(InvoiceDetail(row)) invoices.append(invoice_data) else: exist_invoice.add_detail(InvoiceDetail(row)) self.assertEqual(invoice_util.is_invoice_exist(invoices, 1), True) self.assertEqual(invoice_util.is_invoice_exist(invoices, 5), False)
def test_get_invoice_from_list(self): iv_data = invoice_util.get_excel_data(self.ws) invoices = [] for row in iv_data: id = row[1] exist_invoice = invoice_util.get_invoice_from_list(invoices, id) if not exist_invoice: invoice_data = Invoice(row) invoice_data.add_detail(InvoiceDetail(row)) invoices.append(invoice_data) else: exist_invoice.add_detail(InvoiceDetail(row)) iv1 = invoice_util.get_invoice_from_list(invoices, 2) self.assertEqual(iv1.title, "PC USBケーブル") iv2 = invoice_util.get_invoice_from_list(invoices, 5) self.assertEqual(iv2, None)
app = win32com.client.Dispatch("Excel.Application") # Excel非表示 app.Visible = False # Excelファイルパス abs_path = str(Path(r"../invoice.xlsm").resolve()) # Excelファイルオープン wb = app.Workbooks.Open(abs_path) except: print('can\'t open invoice file') sys.exit(-1) wb.Activate() # ワークシート ws = wb.WorkSheets("請求データ") # Excelデータ取得 iv_data = invoice_util.get_excel_data(ws) # 請求書データ invoices = [] # Excelデータから請求書データ生成 for row in iv_data: id = row[1] exist_invoice = invoice_util.get_invoice_from_list(invoices, id) # 初めての請求書番号のデータだったら、Invoiceデータを作成 if not exist_invoice: invoice_data = Invoice(row) invoice_data.add_detail(InvoiceDetail(row)) invoices.append(invoice_data) else: # 既に取得済みの請求書番号のデータ exist_invoice.add_detail(InvoiceDetail(row))
def test_add_detail(self): iv_data = invoice_util.get_excel_data(self.ws) iv = Invoice(iv_data[0]) iv_detail = InvoiceDetail(iv_data[0]) iv.add_detail(iv_detail) self.assertEqual(iv.invoice_details[0].product_name, "HDD")
def test_get_excel_data(self): iv_data = invoice_util.get_excel_data(self.ws) self.assertEqual(iv_data[0][3], "XXX株式会社")