def setUp(self): self.session_manager = Oauth1SessionManager( sandbox=True, consumer_key=os.environ.get('CONSUMER_KEY'), consumer_secret=os.environ.get('CONSUMER_SECRET'), access_token=os.environ.get('ACCESS_TOKEN'), access_token_secret=os.environ.get('ACCESS_TOKEN_SECRET'), ) self.qb_client = QuickBooks(session_manager=self.session_manager, sandbox=True, company_id=os.environ.get('COMPANY_ID')) self.account_number = datetime.now().strftime('%d%H%M') self.name = "Test Item {0}".format(self.account_number) self.income_account = Account.where( "AccountType = 'Income' and AccountSubType = 'SalesOfProductIncome'", max_results=1, qb=self.qb_client)[0] self.expense_account = Account.where( "AccountSubType = 'SuppliesMaterialsCogs'", max_results=1, qb=self.qb_client)[0] self.asset_account = Account.where("AccountSubType = 'Inventory'", max_results=1, qb=self.qb_client)[0]
def test_update(self): account = Account.filter(Name=self.name, qb=self.qb_client)[0] account.Name = "Updated Name {0}".format(self.account_number) account.save(qb=self.qb_client) query_account = Account.get(account.Id, qb=self.qb_client) self.assertEquals(query_account.Name, "Updated Name {0}".format(self.account_number))
def test_to_ref(self): account = Account() account.FullyQualifiedName = "test" account.Id = 12 ref = account.to_ref() self.assertEquals(ref.name, "test") self.assertEquals(ref.type, "Account") self.assertEquals(ref.value, 12)
def test_create(self): deposit = Deposit() account = Account.filter(AccountType="Bank", max_results=2, qb=self.qb_client) account_ref = account[0].to_ref() deposit_to_account_ref = account[1].to_ref() deposit_line_detail = DepositLineDetail() deposit_line_detail.AccountRef = account_ref line = DepositLine() line.Amount = 20.00 line.DetailType = "DepositLineDetail" line.DepositLineDetail = deposit_line_detail deposit.DepositToAccountRef = deposit_to_account_ref deposit.Line.append(line) deposit.save(qb=self.qb_client) query_deposit = Deposit.get(deposit.Id, qb=self.qb_client) self.assertEqual(deposit.Id, query_deposit.Id)
def test_create(self): accounts = Account.where( "Classification = 'Asset' AND FullyQualifiedName != 'Accounts Receivable (A/R)'", max_results=2, qb=self.qb_client) from_account = accounts[0] to_account = accounts[1] transfer = Transfer() transfer.Amount = 100 transfer.FromAccountRef = from_account.to_ref() transfer.ToAccountRef = to_account.to_ref() transfer.save(qb=self.qb_client) query_transfer = Transfer.get(transfer.Id, qb=self.qb_client) self.assertEquals(query_transfer.Id, transfer.Id) self.assertEquals(query_transfer.Amount, 100) self.assertEquals(query_transfer.FromAccountRef.value, from_account.Id) self.assertEquals(query_transfer.ToAccountRef.value, to_account.Id) # reset transfer (so the from_account doesn't run out of cash) transfer = Transfer() transfer.Amount = 100 transfer.FromAccountRef = to_account.to_ref() transfer.ToAccountRef = from_account.to_ref() transfer.save(qb=self.qb_client)
def setUp(self): super(ItemTest, self).setUp() self.account_number = datetime.now().strftime('%d%H%M') self.name = "Test Item {0}".format(self.account_number) self.income_account = Account.where( "AccountType = 'Income' and AccountSubType = 'SalesOfProductIncome'", max_results=1, qb=self.qb_client)[0] self.expense_account = Account.where( "AccountSubType = 'SuppliesMaterialsCogs'", max_results=1, qb=self.qb_client)[0] self.asset_account = Account.where("AccountSubType = 'Inventory'", max_results=1, qb=self.qb_client)[0]
def test_create(self): account = Account() account.AcctNum = self.account_number account.Name = self.name account.AccountSubType = "CashOnHand" account.save(qb=self.qb_client) self.id = account.Id query_account = Account.get(account.Id, qb=self.qb_client) self.assertEquals(account.Id, query_account.Id) self.assertEquals(query_account.Name, self.name) self.assertEquals(query_account.AcctNum, self.account_number)
def test_create(self): bill_payment = BillPayment() bill_payment.PayType = "Check" bill_payment.TotalAmt = 200 bill_payment.PrivateNote = "Private Note" vendor = Vendor.all(max_results=1, qb=self.qb_client)[0] bill_payment.VendorRef = vendor.to_ref() bill_payment.CheckPayment = CheckPayment() account = Account.where("AccountSubType = 'Checking'", qb=self.qb_client)[0] bill_payment.CheckPayment.BankAccountRef = account.to_ref() ap_account = Account.where("AccountSubType = 'AccountsPayable'", qb=self.qb_client)[0] bill_payment.APAccountRef = ap_account.to_ref() bill = Bill.all(max_results=1, qb=self.qb_client)[0] line = BillPaymentLine() line.LinkedTxn.append(bill.to_linked_txn()) line.Amount = 200 bill_payment.Line.append(line) bill_payment.save(qb=self.qb_client) query_bill_payment = BillPayment.get(bill_payment.Id, qb=self.qb_client) self.assertEquals(query_bill_payment.PayType, "Check") self.assertEquals(query_bill_payment.TotalAmt, 200.0) self.assertEquals(query_bill_payment.PrivateNote, "Private Note") self.assertEquals(len(query_bill_payment.Line), 1) self.assertEquals(query_bill_payment.Line[0].Amount, 200.0)
def test_create(self): customer = Customer.all(max_results=1, qb=self.qb_client)[0] taxcode = TaxCode.all(max_results=1, qb=self.qb_client)[0] item = Item.filter(Type='Inventory', max_results=1, qb=self.qb_client)[0] vendor = Vendor.all(max_results=1, qb=self.qb_client)[0] account = Account.all(max_results=1, qb=self.qb_client)[0] purchaseorder = PurchaseOrder() detail_line = ItemBasedExpenseLine() detail_line.Amount = 100 detail_line.ItemBasedExpenseLineDetail = ItemBasedExpenseLineDetail() detail_line.ItemBasedExpenseLineDetail.BillableStatus = "NotBillable" detail_line.ItemBasedExpenseLineDetail.UnitPrice = 100 detail_line.ItemBasedExpenseLineDetail.Qty = 1 detail_line.ItemBasedExpenseLineDetail.CustomerRef = customer.to_ref() detail_line.ItemBasedExpenseLineDetail.TaxCodeRef = taxcode.to_ref() detail_line.ItemBasedExpenseLineDetail.ItemRef = item.to_ref() purchaseorder.Line.append(detail_line) purchaseorder.VendorRef = vendor.to_ref() purchaseorder.APAccountRef = account.to_ref() purchaseorder.TotalAmt = 100 #print purchaseorder.to_json() purchaseorder.save(qb=self.qb_client) query_purchaseorder = PurchaseOrder.get(purchaseorder.Id, qb=self.qb_client) self.assertEquals(query_purchaseorder.VendorRef.value, vendor.Id) self.assertEquals(query_purchaseorder.APAccountRef.value, account.Id) self.assertEquals(query_purchaseorder.TotalAmt, 100) query_detail_line = query_purchaseorder.Line[0] self.assertEquals(query_detail_line.Amount, 100) self.assertEquals(query_detail_line.ItemBasedExpenseLineDetail.UnitPrice, 100) self.assertEquals(query_detail_line.ItemBasedExpenseLineDetail.Qty, 1) self.assertEquals(query_detail_line.ItemBasedExpenseLineDetail.CustomerRef.value, customer.Id) self.assertEquals(query_detail_line.ItemBasedExpenseLineDetail.TaxCodeRef.value, taxcode.Name) self.assertEquals(query_detail_line.ItemBasedExpenseLineDetail.ItemRef.value, item.Id)
def test_unicode(self): account = Account() account.FullyQualifiedName = "test" self.assertEquals(str(account), "test")
def test_valid_object_name(self): account = Account() client = QuickBooks() result = client.isvalid_object_name(account.qbo_object_name) self.assertTrue(result)