MCPcopy Index your code
hub / github.com/clips/pattern / test_insert_update_delete

Method test_insert_update_delete

test/test_db.py:499–546  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

497 print "pattern.db.Table.fields"
498
499 def test_insert_update_delete(self):
500 # Assert Table.insert().
501 v1 = self.db.persons.insert(name=u"Kurt Gödel")
502 v2 = self.db.products.insert(name="pizza", price=10.0)
503 v3 = self.db.products.insert({"name":"garlic bread", "price":3.0})
504 v4 = self.db.orders.insert(person=v1, product=v3)
505 self.assertEqual(v1, 1)
506 self.assertEqual(v2, 1)
507 self.assertEqual(v3, 2)
508 self.assertEqual(v4, 1)
509 self.assertEqual(self.db.persons.rows(), [(1, u"Kurt Gödel")])
510 self.assertEqual(self.db.products.rows(), [(1, u"pizza", 10.0), (2, u"garlic bread", 3.0)])
511 self.assertEqual(self.db.orders.rows(), [(1, 1, 2)])
512 self.assertEqual(self.db.orders.count(), 1)
513 self.assertEqual(self.db.products.xml.replace(' extra="auto_increment"', ""),
514 '<?xml version="1.0" encoding="utf-8"?>\n'
515 '<table name="products" fields="id, name, price" count="2">\n'
516 '\t<schema>\n'
517 '\t\t<field name="id" type="integer" index="primary" optional="no" />\n'
518 '\t\t<field name="name" type="string" length="100" />\n'
519 '\t\t<field name="price" type="float" default="0.0" />\n'
520 '\t</schema>\n'
521 '\t<rows>\n'
522 '\t\t<row id="1" name="pizza" price="10.0" />\n'
523 '\t\t<row id="2" name="garlic bread" price="3.0" />\n'
524 '\t</rows>\n'
525 '</table>'
526 )
527 # Assert transactions with commit=False.
528 if self.db.type == db.SQLITE:
529 self.db.orders.insert(person=v1, product=v2, commit=False)
530 self.db.rollback()
531 self.assertEqual(len(self.db.orders), 1)
532 self.db.orders.insert(person=v1, product=v2, commit=False)
533 # Assert Table.update().
534 self.db.products.update(2, price=4.0)
535 self.db.products.update(2, {"price":4.5})
536 self.db.products.update(db.all(db.filter("name", "pi*")), name="deeppan pizza")
537 self.assertEqual(self.db.products.rows(), [(1, u"deeppan pizza", 10.0), (2, u"garlic bread", 4.5)])
538 # Assert Table.delete().
539 self.db.products.delete(db.all(db.filter("name", "deeppan*")))
540 self.db.products.delete(db.ALL)
541 self.db.orders.delete(1)
542 self.assertEqual(len(self.db.products), 0)
543 self.assertEqual(len(self.db.orders), 1)
544 print "pattern.db.Table.insert()"
545 print "pattern.db.Table.update()"
546 print "pattern.db.Table.delete()"
547
548 def test_filter(self):
549 # Assert Table.filter().

Callers

nothing calls this directly

Calls 9

lenFunction · 0.85
rollbackMethod · 0.80
deleteMethod · 0.80
insertMethod · 0.45
rowsMethod · 0.45
countMethod · 0.45
updateMethod · 0.45
allMethod · 0.45
filterMethod · 0.45

Tested by

no test coverage detected