Ejemplo n.º 1
0
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()
Ejemplo n.º 2
0
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()
Ejemplo n.º 3
0
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()
Ejemplo n.º 4
0
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()
Ejemplo n.º 5
0
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()
Ejemplo n.º 6
0
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()
Ejemplo n.º 7
0
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()
Ejemplo n.º 8
0
    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')
Ejemplo n.º 9
0
    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')
Ejemplo n.º 10
0
    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()
Ejemplo n.º 11
0
    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()
Ejemplo n.º 12
0
    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()
Ejemplo n.º 13
0
    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
""")
Ejemplo n.º 14
0
    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
""")
Ejemplo n.º 15
0
    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)
Ejemplo n.º 16
0
 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))
Ejemplo n.º 17
0
 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))
Ejemplo n.º 18
0
    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;
""")
Ejemplo n.º 19
0
def everyday(d1,d2):
    return anyrange(itod(d1),itod(d2),DAY)
Ejemplo n.º 20
0
    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;
""",
        )
Ejemplo n.º 21
0
    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 )