Skip to content

Commit 95b9378

Browse files
author
Jason Otero
committed
Added estimate integration test
1 parent 576d73a commit 95b9378

1 file changed

Lines changed: 137 additions & 0 deletions

File tree

tests/integration/test_estimate.py

Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
import os
2+
import unittest
3+
from datetime import datetime
4+
5+
from quickbooks.objects.detailline import DetailLine, SalesItemLineDetail, DiscountLineDetail, SaleItemLine
6+
7+
from quickbooks.objects.tax import TxnTaxDetail
8+
9+
from quickbooks.objects.customer import Customer
10+
11+
from quickbooks.objects.base import Address, EmailAddress, CustomerMemo, Ref
12+
13+
from quickbooks.objects.estimate import Estimate
14+
15+
from quickbooks import QuickBooks
16+
17+
18+
class BillTest(unittest.TestCase):
19+
def setUp(self):
20+
self.qb_client = QuickBooks(
21+
sandbox=True,
22+
consumer_key=os.environ.get('CONSUMER_KEY'),
23+
consumer_secret=os.environ.get('CONSUMER_SECRET'),
24+
access_token=os.environ.get('ACCESS_TOKEN'),
25+
access_token_secret=os.environ.get('ACCESS_TOKEN_SECRET'),
26+
company_id=os.environ.get('COMPANY_ID')
27+
)
28+
self.customer = Customer.all(max_results=1, qb=self.qb_client)[0]
29+
30+
def test_create(self):
31+
estimate = Estimate()
32+
estimate.TotalAmt = 31.5
33+
estimate.ApplyTaxAfterDiscount = False
34+
estimate.PrintStatus = "NeedToPrint"
35+
estimate.EmailStatus = "NotSet"
36+
37+
estimate.BillAddr = Address()
38+
# estimate.BillAddr.Id = "1" + datetime.now().strftime('%d%H%M')
39+
estimate.BillAddr.Line1 = "65 Ocean Dr."
40+
estimate.BillAddr.City = "Half Moon Bay"
41+
estimate.BillAddr.CountrySubDivisionCode = "CA"
42+
estimate.BillAddr.PostalCode = "94213"
43+
estimate.BillAddr.Lat = "37.4300318"
44+
estimate.BillAddr.Long = "-122.4336537"
45+
46+
estimate.ShipAddr = Address()
47+
estimate.ShipAddr.Id = "2" + datetime.now().strftime('%d%H%M')
48+
estimate.ShipAddr.Line1 = "65 Ocean Dr."
49+
estimate.ShipAddr.City = "Half Moon Bay"
50+
estimate.ShipAddr.CountrySubDivisionCode = "CA"
51+
estimate.ShipAddr.PostalCode = "94213"
52+
estimate.ShipAddr.Lat = "37.4300318"
53+
estimate.ShipAddr.Long = "-122.4336537"
54+
55+
estimate.BillEmail = EmailAddress()
56+
estimate.BillEmail.Address = "Cool_Cars@intuit.com"
57+
58+
estimate.CustomerMemo = CustomerMemo()
59+
estimate.CustomerMemo.value = "Thank you for your business and have a great day!"
60+
61+
estimate.CustomerRef = Ref()
62+
estimate.CustomerRef.value = self.customer.Id
63+
estimate.CustomerRef.name = self.customer.DisplayName
64+
65+
estimate.TxnTaxDetail = TxnTaxDetail()
66+
estimate.TxnTaxDetail.TotalTax = 0
67+
68+
line = SaleItemLine()
69+
line.LineNum = 1
70+
line.Description = "Pest Control Services"
71+
line.Amount = 35.0
72+
73+
line.SalesItemLineDetail = SalesItemLineDetail()
74+
line.SalesItemLineDetail.UnitPrice = 35
75+
line.SalesItemLineDetail.Qty = 1
76+
77+
item_ref = Ref()
78+
item_ref.value = "10"
79+
item_ref.name = "Pest Control"
80+
line.SalesItemLineDetail.ItemRef = item_ref
81+
82+
tax_code_ref = Ref()
83+
tax_code_ref.value = "NON"
84+
line.SalesItemLineDetail.TaxCodeRef = tax_code_ref
85+
86+
estimate.Line.append(line)
87+
88+
line2 = DetailLine()
89+
line2.Amount = 3.5
90+
91+
discount_line_detail = DiscountLineDetail()
92+
discount_line_detail.PercentBased = True
93+
discount_line_detail.DiscountPercent = 10
94+
95+
discount_account_ref = Ref()
96+
discount_account_ref.value = "86"
97+
discount_account_ref.name = "Discounts given"
98+
discount_line_detail.DiscountAccountRef = discount_account_ref
99+
100+
line2.DetailType = "DiscountLineDetail"
101+
line2.DiscountLineDetail = discount_line_detail
102+
estimate.Line.append(line2)
103+
104+
estimate.save(qb=self.qb_client)
105+
106+
query_estimate = Estimate.get(estimate.Id, qb=self.qb_client)
107+
108+
self.assertEqual(query_estimate.Id, estimate.Id)
109+
self.assertEqual(query_estimate.TotalAmt, estimate.TotalAmt)
110+
self.assertEqual(query_estimate.ApplyTaxAfterDiscount, estimate.ApplyTaxAfterDiscount)
111+
self.assertEqual(query_estimate.PrintStatus, estimate.PrintStatus)
112+
self.assertEqual(query_estimate.EmailStatus, estimate.EmailStatus)
113+
# self.assertEqual(query_estimate.BillAddr.Id, estimate.BillAddr.Id)
114+
self.assertEqual(query_estimate.BillAddr.Line1, estimate.BillAddr.Line1)
115+
self.assertEqual(query_estimate.BillAddr.City, estimate.BillAddr.City)
116+
self.assertEqual(query_estimate.BillAddr.CountrySubDivisionCode, estimate.BillAddr.CountrySubDivisionCode)
117+
self.assertEqual(query_estimate.BillAddr.PostalCode, estimate.BillAddr.PostalCode)
118+
# self.assertEqual(query_estimate.BillAddr.Lat, estimate.BillAddr.Lat)
119+
# self.assertEqual(query_estimate.BillAddr.Long, estimate.BillAddr.Long)
120+
# self.assertEqual(query_estimate.ShipAddr.Id, estimate.ShipAddr.Id)
121+
self.assertEqual(query_estimate.ShipAddr.Line1, estimate.ShipAddr.Line1)
122+
self.assertEqual(query_estimate.ShipAddr.City, estimate.ShipAddr.City)
123+
self.assertEqual(query_estimate.ShipAddr.CountrySubDivisionCode, estimate.ShipAddr.CountrySubDivisionCode)
124+
self.assertEqual(query_estimate.ShipAddr.PostalCode, estimate.ShipAddr.PostalCode)
125+
# self.assertEqual(query_estimate.ShipAddr.Lat, estimate.ShipAddr.Lat)
126+
# self.assertEqual(query_estimate.ShipAddr.Long, estimate.ShipAddr.Long)
127+
self.assertEqual(query_estimate.BillEmail.Address, estimate.BillEmail.Address)
128+
self.assertEqual(query_estimate.CustomerMemo.value, estimate.CustomerMemo.value)
129+
self.assertEqual(query_estimate.CustomerRef.value, estimate.CustomerRef.value)
130+
self.assertEqual(query_estimate.CustomerRef.name, estimate.CustomerRef.name)
131+
self.assertEqual(query_estimate.TxnTaxDetail.TotalTax, estimate.TxnTaxDetail.TotalTax)
132+
self.assertEqual(query_estimate.Line[0].LineNum, estimate.Line[0].LineNum)
133+
self.assertEqual(query_estimate.Line[0].Description, estimate.Line[0].Description)
134+
self.assertEqual(query_estimate.Line[0].Amount, estimate.Line[0].Amount)
135+
self.assertEqual(query_estimate.Line[0].SalesItemLineDetail.UnitPrice,
136+
estimate.Line[0].SalesItemLineDetail.UnitPrice)
137+
self.assertEqual(query_estimate.Line[0].SalesItemLineDetail.Qty, estimate.Line[0].SalesItemLineDetail.Qty)

0 commit comments

Comments
 (0)