Exemple #1
0
    def testPagination(self):
        fd=orders.get_full_order_fetchdef()
        filter=orders.Customer.account_id>=-1 # This selects all records - in future allow None filter to do this.
        
        # Page 1
        results1, curs1, more1=fetch_page(fd, 6, filter=filter, order=orders.Customer.account_id)
        self.assertEqual(len(results1), 6)
        customer=results1[0]
        curs1_str=curs1.urlsafe()
        self.assertTrue(isinstance(customer.orders, types.ListType), "Customer.orders should be a list")
        
        # Page 2
        new_curs1 = ndb.Cursor(urlsafe=curs1_str)
        results2, curs2, more2=fetch_page(fd, 6, filter=filter, start_cursor=new_curs1, order=orders.Customer.account_id)
        self.assertEqual(len(results2), 4)
        self.assertFalse(more2)
        
        # Page 3 should be the same as page 1, except with the results in the opposite order.
        prev_cursor=new_curs1.reversed()
        results3, curs3, more3=fetch_page(fd, 6, filter=filter, start_cursor=prev_cursor, order=-orders.Customer.account_id)
        results3.reverse()

        self.assertEqual(results3[0].key.id(), results1[0].key.id())

        # Page 4 is the page after Page 2 (should have no results)
        results4, curs4, more4=fetch_page(fd, 6, filter=filter, start_cursor=curs2, order=orders.Customer.account_id)
Exemple #2
0
def get_customer_with_orders_and_details(customer_key):
    customer_fetch=orders.get_full_order_fetchdef()
    customer = graphfetch.fetch(customer_fetch, key=customer_key)
    return customer
Exemple #3
0
 def testSetup(self):
     fd=orders.get_full_order_fetchdef()
     filter=orders.Customer.account_id>=-1
     values = fetch(fd, filter=filter)
     customer=values[0]
     self.assertTrue(isinstance(customer.orders, types.ListType), "Customer.orders should be a list")