def populate2(sess): populate(sess) SERV = sess.query(Services) CUST = sess.query(Customers) ORDERS = sess.query(Orders) PROD = sess.query(Products) s1 = SERV.appendRow(name="bring home", price=1) s2 = SERV.appendRow(name="organize party", price=100) c3 = CUST.appendRow(name="Bernard") o1 = ORDERS.appendRow(customer=c3, date=itod(20040318)) q = o1.lines q.appendRow(product=PROD.peek(1), qty=1) q.appendRow(product=s1, qty=1) o2 = ORDERS.appendRow(customer=CUST.peek(1), date=itod(20040319)) q = o2.lines q.appendRow(product=PROD.peek(1), qty=2) q.appendRow(product=PROD.peek(2), qty=3) o1.register() o2.register()
def populate(dbc): """ Create some data and play with it """ CUST = dbc.query(Customer) PROD = dbc.query(Product) ORDERS = dbc.query(Order) LINES = dbc.query(OrderLine) c1 = CUST.appendRow(name="Henri") c2 = CUST.appendRow(name="James") p1 = PROD.appendRow(name="Pizza Margerita",price=6) assert p1.price == 6 p2 = PROD.appendRow(name="Pizza Marinara",price=7) o1 = ORDERS.appendRow(customer=c1, date=itod(20030816)) l1=LINES.appendRow(order=o1,product=p1,qty=2) assert l1.product.price == 6 o2 = ORDERS.appendRow(customer=c2,date=itod(20030816)) LINES.appendRow(order=o2,product=p1,qty=3) LINES.appendRow(order=o2,product=p2,qty=5) p=PROD.peek(1) assert p.price == 6 o1.register() o2.register()
def populate2(sess): populate(sess) SERV = sess.query(Services) CUST = sess.query(Customers) ORDERS = sess.query(Orders) PROD = sess.query(Products) s1 = SERV.appendRow(name="bring home",price=1) s2 = SERV.appendRow(name="organize party",price=100) c3 = CUST.appendRow(name="Bernard") o1 = ORDERS.appendRow(customer=c3,date=itod(20040318)) q = o1.lines q.appendRow(product=PROD.peek(1),qty=1) q.appendRow(product=s1,qty=1) o2 = ORDERS.appendRow(customer=CUST.peek(1),date=itod(20040319)) q = o2.lines q.appendRow(product=PROD.peek(1),qty=2) q.appendRow(product=PROD.peek(2),qty=3) o1.register() o2.register()
def populate(sess): """ Create some data and play with it """ CUST = sess.query(Customers) PROD = sess.query(Products) ORDERS = sess.query(Orders) LINES = sess.query(OrderLines) c1 = CUST.appendRow(name="Henri") c2 = CUST.appendRow(name="James") p1 = PROD.appendRow(name="Pizza Margerita",price=6) p2 = PROD.appendRow(name="Pizza Marinara",price=7) o1 = ORDERS.appendRow(customer=c1, date=itod(20030816)) LINES.appendRow(ordr=o1,product=p1,qty=2) o2 = ORDERS.appendRow(customer=c2,date=itod(20030816)) LINES.appendRow(ordr=o2,product=p1,qty=3) LINES.appendRow(ordr=o2,product=p2,qty=5) o1.register() o2.register()
def populate(dbc): pizzeria.populate(dbc) SERV = dbc.query(Service) CUST = dbc.query(pizzeria.Customer) ORDERS = dbc.query(pizzeria.Order) PROD = dbc.query(pizzeria.Product) s1 = SERV.appendRow(name="bring home",price=1) s2 = SERV.appendRow(name="organize party",price=100) c3 = CUST.appendRow(name="Bernard") o1 = ORDERS.appendRow(customer=c3,date=itod(20040318)) q = o1.lines() q.appendRow(product=PROD.peek(1),qty=1) q.appendRow(product=s1,qty=1) o2 = ORDERS.appendRow(customer=CUST.peek(1),date=itod(20040319)) q = o2.lines() q.appendRow(product=PROD.peek(1),qty=2) q.appendRow(product=PROD.peek(2),qty=3) o1.register() o2.register()
def populate(sess): """ Create some data and play with it """ CUST = sess.query(Customers) PROD = sess.query(Products) ORDERS = sess.query(Orders) LINES = sess.query(OrderLines) c1 = CUST.appendRow(name="Henri") c2 = CUST.appendRow(name="James") p1 = PROD.appendRow(name="Pizza Margerita", price=6) p2 = PROD.appendRow(name="Pizza Marinara", price=7) o1 = ORDERS.appendRow(customer=c1, date=itod(20030816)) LINES.appendRow(ordr=o1, product=p1, qty=2) o2 = ORDERS.appendRow(customer=c2, date=itod(20030816)) LINES.appendRow(ordr=o2, product=p1, qty=3) LINES.appendRow(ordr=o2, product=p2, qty=5) o1.register() o2.register()
def test01(self): EVENTS = self.db.query(Event) d = itod(20040413) for i in range(100): EVENTS.appendRow(date=d, title="Event # %d" % i) d += datetime.timedelta(days=1) e = EVENTS.findone(date=itod(20040501)) self.assertEqual(e.id, 19) self.assertEqual(e.title, 'Event # 18')
def test01(self): EVENTS = self.db.query(Event) d = itod(20040413) for i in range(100): EVENTS.appendRow(date=d, title="Event # %d" % i) d += datetime.timedelta(days=1) e = EVENTS.findone(date=itod(20040501)) self.assertEqual(e.id,19) self.assertEqual(e.title,'Event # 18')
def test04(self): SERV = self.sess.query(Service) CUST = self.sess.query(Customer) PROD = self.sess.query(Product) ORDERS = self.sess.query(Order) LINES = self.sess.query(OrderLine) #db = self.db pizzeria.populate(self.sess) s1 = SERV.appendRow(name="bring home",price=1) s2 = SERV.appendRow(name="organize party",price=100) c3 = CUST.appendRow(name="Bernard") p1 = PROD.peek(1) p2 = PROD.peek(2) o1 = ORDERS.appendRow(customer=c3,date=itod(20040318)) q = o1.lines() q.appendRow(product=s1,qty=1) q.appendRow(product=p1,qty=1) o2 = ORDERS.appendRow(customer=CUST[1], date=itod(20040319)) q = o2.lines() q.appendRow(product=p1,qty=2) q.appendRow(product=p2,qty=3) #LINES.appendRow(order=o1,product=s2,qty=1) #db.commit() q = o1.lines("product qty") totalPrice = 0 for line in q: #print line.product.name, line.qty totalPrice += (line.qty * line.product.price) o1.register() o2.register() self.sess.commit()
def test04(self): SERV = self.sess.query(Service) CUST = self.sess.query(Customer) PROD = self.sess.query(Product) ORDERS = self.sess.query(Order) LINES = self.sess.query(OrderLine) #db = self.db pizzeria.populate(self.sess) s1 = SERV.appendRow(name="bring home", price=1) s2 = SERV.appendRow(name="organize party", price=100) c3 = CUST.appendRow(name="Bernard") p1 = PROD.peek(1) p2 = PROD.peek(2) o1 = ORDERS.appendRow(customer=c3, date=itod(20040318)) q = o1.lines() q.appendRow(product=s1, qty=1) q.appendRow(product=p1, qty=1) o2 = ORDERS.appendRow(customer=CUST[1], date=itod(20040319)) q = o2.lines() q.appendRow(product=p1, qty=2) q.appendRow(product=p2, qty=3) #LINES.appendRow(order=o1,product=s2,qty=1) #db.commit() q = o1.lines("product qty") totalPrice = 0 for line in q: #print line.product.name, line.qty totalPrice += (line.qty * line.product.price) o1.register() o2.register() self.sess.commit()
def test01(self): app = Raceman() # label="Raceman Report Tester") #races.setupSchema(schema) sess = app.createContext() # quickStartup() PERSONS = sess.query(tables.Person) norbert = PERSONS.appendRow(name="Ausdemwald", firstName="Norbert", sex="M", birthDate="19800506") edgar = PERSONS.appendRow( name="Ausdemwald", firstName="Edgar", sex="M", birthDate="19800505") RACES = sess.query(tables.Race) race = RACES.appendRow(date=itod(20040112),name1="test race") qry=race.participants() qry.appendRow( person=norbert, dossard="0012", duration=DURATION.parse("00.55.10")) qry.appendRow( person=edgar, dossard="0013", duration=DURATION.parse("01.10.50")) #sess.startDump() q = qry.query( "duration dossard person.name person.firstName", orderBy="duration dossard", pageLen=10) q.show(columnWidths="d d 20 15") #rpt=sess.createDataReport(q,columnWidths="d d 20 15") #sess.showReport(rpt) #q.report(columnWidths="d d 20 15") #self.ui.report(rpt) #q.executeReport(columnWidths="d d 20 15") s = self.getConsoleOutput() #print s self.assertEquals(s,"""\ Participants (race=test race) ============================= duration|doss|person.name |person.firstNam |ard | |e --------+----+--------------------+--------------- 00.55.10|0012|Ausdemwald |Norbert 01.10.50|0013|Ausdemwald |Edgar """) sess.shutdown()
def test01(self): NEWS = self.db.query(NewsItem) LANGS = self.db.query(Language) n = NEWS.appendRow(date=itod(20040428), title="test") self.assertEqual(str(n.date), '2004-04-28') q = LANGS.query(orderBy="name") LANGS.setBabelLangs('en') self.assertEquivalent( q.getSqlSelect(), """\ SELECT id, name_en, name_de, name_fr FROM Languages ORDER BY name_en """) s = "" for row in q: s += row.name + "\n" #print s self.assertEquivalent(s, """\ Dutch English Estonian French German """) LANGS.setBabelLangs('fr') self.assertEquivalent( q.getSqlSelect(), """\ SELECT id, name_en, name_de, name_fr FROM Languages ORDER BY name_fr """) s = "" for row in LANGS.query(orderBy="name"): s += row.name + "\n" #print s self.assertEquivalent( s, u"""\ Allemand Anglais Estonien Français Neerlandais """)
def test01(self): NEWS = self.db.query(NewsItem) LANGS = self.db.query(Language) n = NEWS.appendRow(date=itod(20040428),title="test") self.assertEqual(str(n.date),'2004-04-28') q = LANGS.query(orderBy="name") LANGS.setBabelLangs('en') self.assertEquivalent(q.getSqlSelect(),"""\ SELECT id, name_en, name_de, name_fr FROM Languages ORDER BY name_en """) s = "" for row in q: s += row.name + "\n" #print s self.assertEquivalent(s,"""\ Dutch English Estonian French German """) LANGS.setBabelLangs('fr') self.assertEquivalent(q.getSqlSelect(),"""\ SELECT id, name_en, name_de, name_fr FROM Languages ORDER BY name_fr """) s = "" for row in LANGS.query(orderBy="name"): s += row.name + "\n" #print s self.assertEquivalent(s,u"""\ Allemand Anglais Estonien Français Neerlandais """)
def test01(self): "create an invoice" PARTNERS = self.db.query(Contact) JOURNALS = self.db.query(Journal) INVOICES = self.db.query(Invoice) PRODUCTS = self.db.query(Product) """get the partner # 1 and Journal.""" p = PARTNERS.peek(1) self.assertEqual(unicode(p), "Andreas Arens") jnl = JOURNALS.peek("OUT") self.assertEqual(jnl.id, "OUT") "create a query" invoices = INVOICES.query("jnl date remark", contact=p) #invoices.setSamples(partner=p) #csr = invoices.executeSelect() #count = csr.rowcount count = len(invoices) self.assertEqual(count, 0) # create a new invoice : i = invoices.appendRow(jnl, itod(20030816), "test") """ The `seq` field of Invoices is an auto-incrementing integer. """ self.assertEqual(i.seq, 2) """ len(p.invoices()) is increased because an invoice for this contact has been created:""" self.assertEqual(len(invoices), count + 1) """create two rows in this invoice :""" lines = i.lines("line product qty") lines.appendRow(1, PRODUCTS.peek(3), 4) # price is 12 lines.appendRow(2, PRODUCTS.peek(16), 1) # price is 56 i.lines( "line product.name qty unitPrice amount")\ .show(width=60) s = self.getConsoleOutput() #print s self.assertEquivalent( s, """\ InvoiceLines (invoice=OUT-2) ============================ line |product.name |qty |unitPri|amount | | |ce | -------+----------------------------+-------+-------+------- 1 |Chair |4 |12 |48 2 |Table |1 |56 |56 """) # register() the invoice : i.close() self.assertEqual(i.amount, 4 * 12 + 1 * 56)
def populateInvoices(self,q): anton=q.getContext().query( Contact).findone(name="Anton Ausdemwald") self.invoice = q.appendRow(jnl=self.OUT, contact=anton, date=itod(20030822))
def populateInvoices(self, q): anton = q.getContext().query(Contact).findone(name="Anton Ausdemwald") self.invoice = q.appendRow(jnl=self.OUT, contact=anton, date=itod(20030822))
def test02(self): #pizzeria2.populate(self.db) SERV = self.sess.query(Service) CUST = self.sess.query(Customer) PROD = self.sess.query(Product) ORDERS = self.sess.query(Order) LINES = self.sess.query(OrderLine) c = CUST.appendRow(name="Henri") p = PROD.appendRow(name="Pizza Margerita", price=599) self.assertEqual(c.id, 4) self.assertEqual(p.id, 3) #self.db.flush() c = CUST.peek(4) self.assertEqual(c.id, 4) p = PROD.peek(3) self.assertEqual(p.id, 3) ORDERS.startDump() o = ORDERS.appendRow(date=itod(20040322), customer=c) #SELECT MAX(id) FROM ORDERS; self.assertEquivalent( ORDERS.stopDump(), """\ INSERT INTO Orders ( id, xdate, customer_id, totalPrice, isRegistered ) VALUES ( 5, 731662, 4, NULL, NULL ); """) LINES.startDump() q = o.lines() q.appendRow(product=p, qty=2) s = LINES.stopDump() #print s # SELECT MAX(id) FROM LINES; #SELECT id, date, customer_id, totalPrice, isRegistered #FROM Orders #WHERE id = 5; self.assertEquivalent( s, """\ INSERT INTO OrderLines ( id, order_id, productProducts_id, productServices_id, qty ) VALUES ( 8, 5, 3, NULL, 2 ); """) q = LINES.query(order=ORDERS.peek(1)) self.assertEqual(len(q), 1) for line in q: self.assertEqual(line.order.id, 1) #self.db.flush() PROD.startDump() prod = PROD.peek(1) #self.assertEqual(len(PROD._cachedRows.keys()),1) #self.assertEqual(PROD._cachedRows.keys()[0],(1,)) self.assertEqual(prod.name, "Pizza Margerita") self.assertEquivalent( PROD.stopDump(), """\ SELECT id, name, price FROM Products WHERE id = 1; """) #self.db.flush() #self.assertEqual(len(PROD._cachedRows.keys()),0) LINES.startDump() line = LINES.peek(1) #self.assertEquivalent(self.db.conn.stopDump(),"") self.assertEquivalent( LINES.stopDump(), """\ SELECT id, order_id, productProducts_id, productServices_id, qty FROM OrderLines WHERE id = 1; """) PROD.startDump() self.assertEqual(line.product.name, "Pizza Margerita") #print self.db.conn.stopDump() self.assertEquivalent( PROD.stopDump(), """\ SELECT id, name, price FROM Products WHERE id = 1; """)
def everyday(d1,d2): return anyrange(itod(d1),itod(d2),DAY)
def test02(self): # pizzeria2.populate(self.db) SERV = self.sess.query(Service) CUST = self.sess.query(Customer) PROD = self.sess.query(Product) ORDERS = self.sess.query(Order) LINES = self.sess.query(OrderLine) c = CUST.appendRow(name="Henri") p = PROD.appendRow(name="Pizza Margerita", price=599) self.assertEqual(c.id, 4) self.assertEqual(p.id, 3) # self.db.flush() c = CUST.peek(4) self.assertEqual(c.id, 4) p = PROD.peek(3) self.assertEqual(p.id, 3) ORDERS.startDump() o = ORDERS.appendRow(date=itod(20040322), customer=c) # SELECT MAX(id) FROM ORDERS; self.assertEquivalent( ORDERS.stopDump(), """\ INSERT INTO Orders ( id, xdate, customer_id, totalPrice, isRegistered ) VALUES ( 5, 731662, 4, NULL, NULL ); """, ) LINES.startDump() q = o.lines() q.appendRow(product=p, qty=2) s = LINES.stopDump() # print s # SELECT MAX(id) FROM LINES; # SELECT id, date, customer_id, totalPrice, isRegistered # FROM Orders # WHERE id = 5; self.assertEquivalent( s, """\ INSERT INTO OrderLines ( id, order_id, productProducts_id, productServices_id, qty ) VALUES ( 8, 5, 3, NULL, 2 ); """, ) q = LINES.query(order=ORDERS.peek(1)) self.assertEqual(len(q), 1) for line in q: self.assertEqual(line.order.id, 1) # self.db.flush() PROD.startDump() prod = PROD.peek(1) # self.assertEqual(len(PROD._cachedRows.keys()),1) # self.assertEqual(PROD._cachedRows.keys()[0],(1,)) self.assertEqual(prod.name, "Pizza Margerita") self.assertEquivalent( PROD.stopDump(), """\ SELECT id, name, price FROM Products WHERE id = 1; """, ) # self.db.flush() # self.assertEqual(len(PROD._cachedRows.keys()),0) LINES.startDump() line = LINES.peek(1) # self.assertEquivalent(self.db.conn.stopDump(),"") self.assertEquivalent( LINES.stopDump(), """\ SELECT id, order_id, productProducts_id, productServices_id, qty FROM OrderLines WHERE id = 1; """, ) PROD.startDump() self.assertEqual(line.product.name, "Pizza Margerita") # print self.db.conn.stopDump() self.assertEquivalent( PROD.stopDump(), """\ SELECT id, name, price FROM Products WHERE id = 1; """, )
def test01(self): "create an invoice" PARTNERS = self.db.query(Contact) JOURNALS = self.db.query(Journal) INVOICES = self.db.query(Invoice) PRODUCTS = self.db.query(Product) """get the partner # 1 and Journal.""" p = PARTNERS.peek(1) self.assertEqual(unicode(p),"Andreas Arens") jnl = JOURNALS.peek("OUT") self.assertEqual(jnl.id,"OUT") "create a query" invoices = INVOICES.query("jnl date remark", contact=p) #invoices.setSamples(partner=p) #csr = invoices.executeSelect() #count = csr.rowcount count = len(invoices) self.assertEqual(count,0) # create a new invoice : i = invoices.appendRow(jnl,itod(20030816),"test") """ The `seq` field of Invoices is an auto-incrementing integer. """ self.assertEqual(i.seq,2) """ len(p.invoices()) is increased because an invoice for this contact has been created:""" self.assertEqual(len(invoices),count+1) """create two rows in this invoice :""" lines = i.lines("line product qty") lines.appendRow(1,PRODUCTS.peek(3), 4) # price is 12 lines.appendRow(2,PRODUCTS.peek(16), 1) # price is 56 i.lines( "line product.name qty unitPrice amount")\ .show(width=60) s=self.getConsoleOutput() #print s self.assertEquivalent(s,"""\ InvoiceLines (invoice=OUT-2) ============================ line |product.name |qty |unitPri|amount | | |ce | -------+----------------------------+-------+-------+------- 1 |Chair |4 |12 |48 2 |Table |1 |56 |56 """) # register() the invoice : i.close() self.assertEqual(i.amount, 4*12 + 1*56 )