Beispiel #1
0
 def test_get_ttl(self):
     key = self.gen_key('get_ttl')
     self.cb.remove(key, quiet=True)
     self.cb.upsert(key, "a_value")
     rv = self.cb.get(key, ttl=1)
     self.assertEqual(rv.value, "a_value")
     sleep(2)
     rv = self.cb.get(key, quiet=True)
     self.assertFalse(rv.success)
     self.assertTrue(NotFoundError._can_derive(rv.rc))
Beispiel #2
0
 def test_get_ttl(self):
     key = self.gen_key('get_ttl')
     self.cb.remove(key, quiet=True)
     self.cb.upsert(key, "a_value")
     rv = self.cb.get(key, ttl=1)
     self.assertEqual(rv.value, "a_value")
     sleep(2)
     rv = self.cb.get(key, quiet=True)
     self.assertFalse(rv.success)
     self.assertTrue(NotFoundError._can_derive(rv.rc))
Beispiel #3
0
    def test_multi_mixed(self):
        kv_missing = self.gen_kv_dict(amount=3, prefix='multi_missing_mixed')
        kv_existing = self.gen_kv_dict(amount=3, prefix='multi_existing_mixed')

        self.cb.remove_multi(list(kv_missing.keys()) +
                             list(kv_existing.keys()),
                             quiet=True)

        self.cb.upsert_multi(kv_existing)

        rvs = self.cb.get_multi(list(kv_existing.keys()) +
                                list(kv_missing.keys()),
                                quiet=True)

        self.assertFalse(rvs.all_ok)

        for k, v in kv_missing.items():
            self.assertTrue(k in rvs)
            self.assertFalse(rvs[k].success)
            self.assertTrue(rvs[k].value is None)
            self.assertTrue(NotFoundError._can_derive(rvs[k].rc))

        for k, v in kv_existing.items():
            self.assertTrue(k in rvs)
            self.assertTrue(rvs[k].success)
            self.assertEqual(rvs[k].value, kv_existing[k])
            self.assertEqual(rvs[k].rc, 0)

        # Try this again, but without quiet
        cb_exc = None
        try:
            self.cb.get_multi(
                list(kv_existing.keys()) + list(kv_missing.keys()))
        except NotFoundError as e:
            cb_exc = e

        self.assertTrue(cb_exc)
        all_res = cb_exc.all_results
        self.assertTrue(all_res)
        self.assertFalse(all_res.all_ok)

        for k, v in kv_existing.items():
            self.assertTrue(k in all_res)
            self.assertTrue(all_res[k].success)
            self.assertEqual(all_res[k].value, v)
            self.assertEqual(all_res[k].rc, 0)

        for k, v in kv_missing.items():
            self.assertTrue(k in all_res)
            self.assertFalse(all_res[k].success)
            self.assertTrue(all_res[k].value is None)

        del cb_exc
Beispiel #4
0
    def test_multi_mixed(self):
        kv_missing = self.gen_kv_dict(amount=3, prefix='multi_missing_mixed')
        kv_existing = self.gen_kv_dict(amount=3, prefix='multi_existing_mixed')

        self.cb.remove_multi(list(kv_missing.keys()) + list(kv_existing.keys()),
                             quiet=True)

        self.cb.upsert_multi(kv_existing)

        rvs = self.cb.get_multi(
            list(kv_existing.keys()) + list(kv_missing.keys()),
            quiet=True)


        self.assertFalse(rvs.all_ok)

        for k, v in kv_missing.items():
            self.assertTrue(k in rvs)
            self.assertFalse(rvs[k].success)
            self.assertTrue(rvs[k].value is None)
            self.assertTrue(NotFoundError._can_derive(rvs[k].rc))

        for k, v in kv_existing.items():
            self.assertTrue(k in rvs)
            self.assertTrue(rvs[k].success)
            self.assertEqual(rvs[k].value, kv_existing[k])
            self.assertEqual(rvs[k].rc, 0)

        # Try this again, but without quiet
        cb_exc = None
        try:
            self.cb.get_multi(list(kv_existing.keys()) + list(kv_missing.keys()))
        except NotFoundError as e:
            cb_exc = e

        self.assertTrue(cb_exc)
        all_res = cb_exc.all_results
        self.assertTrue(all_res)
        self.assertFalse(all_res.all_ok)

        for k, v in kv_existing.items():
            self.assertTrue(k in all_res)
            self.assertTrue(all_res[k].success)
            self.assertEqual(all_res[k].value, v)
            self.assertEqual(all_res[k].rc, 0)

        for k, v in kv_missing.items():
            self.assertTrue(k in all_res)
            self.assertFalse(all_res[k].success)
            self.assertTrue(all_res[k].value is None)

        del cb_exc
    def test_tracing_result_context(self):
        super(TracingTest, self).setUp(trace_all=True,
                                       enable_logging=True,
                                       use_parent_tracer=False,
                                       flushcount=0)

        kv_missing = self.gen_kv_dict(amount=3, prefix='multi_missing_mixed')
        kv_existing = self.gen_kv_dict(amount=3, prefix='multi_existing_mixed')

        logging.getLogger().setLevel(logging.DEBUG)

        self.cb.remove_multi(list(kv_missing.keys()) +
                             list(kv_existing.keys()),
                             quiet=True)

        self.cb.tracing_threshold_kv = 0.00000000001
        self.cb.timeout = 0.000001
        self.cb.upsert_multi(kv_existing)

        rvs = self.cb.get_multi(list(kv_existing.keys()) +
                                list(kv_missing.keys()),
                                quiet=True)

        self.assertFalse(rvs.all_ok)

        for k, v in kv_missing.items():
            self.assertTrue(k in rvs)
            self.assertFalse(rvs[k].success)
            self.assertTrue(rvs[k].value is None)
            self.assertTrue(NotFoundError._can_derive(rvs[k].rc))
        self.verify_tracing_output(kv_existing, rvs, True)
        # Try this again, but without quiet
        cb_exc = None
        try:
            self.cb.get_multi(
                list(kv_existing.keys()) + list(kv_missing.keys()))
        except NotFoundError as e:
            cb_exc = e

        self.assertTrue(cb_exc)
        all_res = cb_exc.all_results
        self.assertTrue(all_res)
        self.assertFalse(all_res.all_ok)

        self.verify_exception_string(cb_exc, kv_missing, rvs)
        logging.error(cb_exc)
        self.verify_tracing_output(kv_existing, all_res, True)

        self.verify_tracing_output(kv_missing, all_res, False)

        del cb_exc
Beispiel #6
0
    def test_get_multi_ttl(self):
        kvs = self.gen_kv_dict(amount=2, prefix='get_multi_ttl')

        self.cb.upsert_multi(kvs)
        rvs = self.cb.get_multi(list(kvs.keys()), ttl=1)
        for k, v in rvs.items():
            self.assertEqual(v.value, kvs[k])

        sleep(2)
        rvs = self.cb.get_multi(list(kvs.keys()), quiet=True)
        for k, v in rvs.items():
            self.assertFalse(v.success)
            self.assertTrue(k in kvs)
            self.assertTrue(NotFoundError._can_derive(v.rc))
Beispiel #7
0
    def test_get_multi_ttl(self):
        kvs = self.gen_kv_dict(amount=2, prefix='get_multi_ttl')

        self.cb.upsert_multi(kvs)
        rvs = self.cb.get_multi(list(kvs.keys()), ttl=1)
        for k, v in rvs.items():
            self.assertEqual(v.value, kvs[k])

        sleep(2)
        rvs = self.cb.get_multi(list(kvs.keys()), quiet=True)
        for k, v in rvs.items():
            self.assertFalse(v.success)
            self.assertTrue(k in kvs)
            self.assertTrue(NotFoundError._can_derive(v.rc))
        def t(err):
            self.assertIsInstance(err.value, NotFoundError)
            all_results = err.value.all_results
            for k, v in kv.items():
                self.assertTrue(k in all_results)
                res = all_results[k]
                self.assertEqual(res.key, k)
                if k != rmkey:
                    self.assertTrue(res.success)
                    self.assertEqual(res.value, v)

            res_fail = err.value.result
            self.assertFalse(res_fail.success)
            self.assertTrue(NotFoundError._can_derive(res_fail.rc))
Beispiel #9
0
        def t(err):
            self.assertIsInstance(err.value, NotFoundError)
            all_results = err.value.all_results
            for k, v in kv.items():
                self.assertTrue(k in all_results)
                res = all_results[k]
                self.assertEqual(res.key, k)
                if k != rmkey:
                    self.assertTrue(res.success)
                    self.assertEqual(res.value, v)

            res_fail = err.value.result
            self.assertFalse(res_fail.success)
            self.assertTrue(NotFoundError._can_derive(res_fail.rc))
    def test_tracing_result_context(self):
        super(TracingTest, self).setUp(trace_all=True, enable_logging=True, use_parent_tracer=False, flushcount=0)

        kv_missing = self.gen_kv_dict(amount=3, prefix='multi_missing_mixed')
        kv_existing = self.gen_kv_dict(amount=3, prefix='multi_existing_mixed')

        logging.getLogger().setLevel(logging.DEBUG)

        self.cb.remove_multi(list(kv_missing.keys()) + list(kv_existing.keys()),
                             quiet=True)

        self.cb.tracing_threshold_kv = 0.00000000001
        self.cb.timeout = 0.000001
        self.cb.upsert_multi(kv_existing)

        rvs = self.cb.get_multi(
            list(kv_existing.keys()) + list(kv_missing.keys()),
            quiet=True)

        self.assertFalse(rvs.all_ok)

        for k, v in kv_missing.items():
            self.assertTrue(k in rvs)
            self.assertFalse(rvs[k].success)
            self.assertTrue(rvs[k].value is None)
            self.assertTrue(NotFoundError._can_derive(rvs[k].rc))
        self.verify_tracing_output(kv_existing, rvs, True)
        # Try this again, but without quiet
        cb_exc = None
        try:
            self.cb.get_multi(list(kv_existing.keys()) + list(kv_missing.keys()))
        except NotFoundError as e:
            cb_exc = e

        self.assertTrue(cb_exc)
        all_res = cb_exc.all_results
        self.assertTrue(all_res)
        self.assertFalse(all_res.all_ok)

        self.verify_exception_string(cb_exc, kv_missing, rvs)
        logging.error(cb_exc)
        self.verify_tracing_output(kv_existing, all_res, True)

        self.verify_tracing_output(kv_missing, all_res, False)

        del cb_exc