def _test_spawn_and_join(self):
     pair = self.make_cat_pair()
     requester = partial(self.requester_with_join, pair)
     fetcher = DataFetcher()
     result = fetcher.spawn_and_run(requester)
     self.check_cat_pair_fetched(pair, result, fetcher)
     self.assert_stats(2, 2, 2)
Example #2
0
 def _test_spawn_and_join(self):
     pair = self.make_cat_pair()
     requester = partial(self.requester_with_join, pair)
     fetcher = DataFetcher()
     result = fetcher.spawn_and_run(requester)
     self.check_cat_pair_fetched(pair, result, fetcher)
     self.assert_stats(2, 2, 2)
    def _test_inner_spawn(self):
        cat, friend = pair = self.make_cat_pair()

        def requester(fetcher):
            fetch_inner = partial(self.request_cat_and_friend, cat)
            fetcher.spawn(fetch_inner)

            yield

            cat1 = fetcher.get_obj(Cat, cat.key().id())
            self.assert_cat_equals(cat, cat1)

            # Verify that after the first pass, we shouldn't have gotten the
            # friend's data
            self.assertRaises(KeyError, fetcher.get_obj, Cat,
                              friend.key().id())

            def ondone():
                # after the second pass, we should have the friend's data
                friend1 = fetcher.get_obj(Cat, friend.key().id())
                self.assert_cat_equals(friend, friend1)
                return (cat1, friend1)

            yield ondone

        fetcher = DataFetcher()
        result = fetcher.spawn_and_run(requester)
        self.check_cat_pair_fetched(pair, result, fetcher)
        self.assert_stats(2, 2, 2)
Example #4
0
    def _test_inner_spawn(self):
        cat, friend = pair = self.make_cat_pair()

        def requester(fetcher):
            fetch_inner = partial(self.request_cat_and_friend, cat)
            fetcher.spawn(fetch_inner)

            yield

            cat1 = fetcher.get_obj(Cat, cat.key().id())
            self.assert_cat_equals(cat, cat1)

            # Verify that after the first pass, we shouldn't have gotten the
            # friend's data
            self.assertRaises(KeyError, fetcher.get_obj, Cat, friend.key().id())

            def ondone():
                # after the second pass, we should have the friend's data
                friend1 = fetcher.get_obj(Cat, friend.key().id())
                self.assert_cat_equals(friend, friend1)
                return (cat1, friend1)

            yield ondone

        fetcher = DataFetcher()
        result = fetcher.spawn_and_run(requester)
        self.check_cat_pair_fetched(pair, result, fetcher)
        self.assert_stats(2, 2, 2)
 def do_fetch():
     requester_funcs = get_requester_funcs(cat_pairs)
     fetcher = DataFetcher()
     if type(requester_funcs) is list:
         results = fetcher.spawn_and_run_multi(requester_funcs)
     else:
         results = fetcher.spawn_and_run(requester_funcs)
     return (fetcher, results)
Example #6
0
 def do_fetch():
     requester_funcs = get_requester_funcs(cat_pairs)
     fetcher = DataFetcher()
     if type(requester_funcs) is list:
         results = fetcher.spawn_and_run_multi(requester_funcs)
     else:
         results = fetcher.spawn_and_run(requester_funcs)
     return (fetcher, results)
    def test_spawn_with_ondone_func(self):
        pair = cat, friend = self.make_cat_pair()

        def requester(fetcher):
            requester1 = partial(self.request_cat_and_friend, cat)
            ref = fetcher.spawn(requester1)
            yield ref.get

        fetcher = DataFetcher()
        res = fetcher.spawn_and_run(requester)
        self.check_cat_pair_fetched(pair, res, fetcher)
Example #8
0
    def test_spawn_with_ondone_func(self):
        pair = cat, friend = self.make_cat_pair()

        def requester(fetcher):
            requester1 = partial(self.request_cat_and_friend, cat)
            ref = fetcher.spawn(requester1)
            yield ref.get

        fetcher = DataFetcher()
        res = fetcher.spawn_and_run(requester)
        self.check_cat_pair_fetched(pair, res, fetcher)
    def _test_obj_single_query(self):
        cat = self.make_cat()
        id = cat.key().id()

        def requester(fetcher):
            ref = fetcher.request_obj(Cat, id)
            yield ref.get

        fetcher = DataFetcher()
        cat2 = fetcher.spawn_and_run(requester)
        cat3 = fetcher.get_obj(Cat, id)

        self.assert_cat_equals(cat, cat3)
        self.assert_cat_equals(cat, cat2)
        self.assert_stats(1, 1, 1)
Example #10
0
    def _test_obj_single_query(self):
        cat = self.make_cat()
        id = cat.key().id()

        def requester(fetcher):
            ref = fetcher.request_obj(Cat, id)
            yield ref.get

        fetcher = DataFetcher()
        cat2 = fetcher.spawn_and_run(requester)
        cat3 = fetcher.get_obj(Cat, id)

        self.assert_cat_equals(cat, cat3)
        self.assert_cat_equals(cat, cat2)
        self.assert_stats(1, 1, 1)
Example #11
0
    def _test_multi_query(self):
        num = 3
        cats = [self.make_cat() for i in xrange(num)]

        mkey = "cats_test"
        memcache.delete(mkey)

        def requester(fetcher):
            query = db.GqlQuery("select * from Cat order by __key__ desc")
            ref = fetcher.request(mkey, query, num)
            yield ref.get

        fetcher = DataFetcher()
        cats1 = fetcher.spawn_and_run(requester)
        cats2 = fetcher.get(mkey)

        self.assert_obj_list_equals(cats, cats1)
        self.assert_obj_list_equals(cats, cats2)
        self.assert_stats(1, 1, 1)
Example #12
0
    def _test_multi_query(self):
        num = 3
        cats = [self.make_cat() for i in xrange(num)]

        mkey = "cats_test"
        memcache.delete(mkey)

        def requester(fetcher):
            query = db.GqlQuery("select * from Cat order by __key__ desc")
            ref = fetcher.request(mkey, query, num)
            yield ref.get

        fetcher = DataFetcher()
        cats1 = fetcher.spawn_and_run(requester)
        cats2 = fetcher.get(mkey)

        self.assert_obj_list_equals(cats, cats1)
        self.assert_obj_list_equals(cats, cats2)
        self.assert_stats(1, 1, 1)
Example #13
0
 def do_fetch():
     requester = partial(self.request_cat, cat)
     fetcher = DataFetcher()
     result = fetcher.spawn_and_run(requester)
     return (fetcher, result)
Example #14
0
 def do_fetch():
     requester = partial(self.request_cat, cat)
     fetcher = DataFetcher()
     result = fetcher.spawn_and_run(requester)
     return (fetcher, result)