Пример #1
0
 def mc(self):
     try:
         return self._mc
     except AttributeError:
         pass
     self._mc = Memcached(self.inst.mcpool, prefix="%s-" % self.tag)
     return self._mc
Пример #2
0
 def testerrors(self):
     mc = Memcached(pool=MemcachedPool(size=4))
     tasks = []
     for i in xrange(0, 100):
         tasks.append(Tasklet.new(self.error_thread)(mc))
     for i in xrange(0, 100):
         tasks.append(Tasklet.new(self.handled_thread)(mc))
     Tasklet.join_all(tasks)
Пример #3
0
class TestDatabase(unittest.TestCase):
    def setUp(self):
        self.mc = Memcached(prefix="mgtest-")
        self.db = CassandraPool().dbget("mgtest", self.mc)
        self.cleanup()

    def tearDown(self):
        self.cleanup()
        pass

    def cleanup(self):
        conn = self.db.pool.cget()
        try:
            conn.cass.system_drop_keyspace("mgtest")
        except Exception as e:
            pass
        self.db.pool.success(conn)
        self.mc.delete("Cassandra-KS-mgtest")
        self.mc.delete("Cassandra-CF-mgtest-Family1")
        self.mc.delete("Cassandra-CF-mgtest-Family2")
        self.mc.delete("Cassandra-CF-mgtest-Family3")

    def testputget(self):
        timestamp = time.time() * 1000
        self.db.insert("1", ColumnParent(column_family="Family1"), Column(name="email", value="[email protected] - проверка", timestamp=timestamp), ConsistencyLevel.QUORUM)
        self.db.get_slice("1", ColumnParent(column_family="Family1"), SlicePredicate(slice_range=SliceRange(start="", finish="")), ConsistencyLevel.QUORUM)

    def testerror(self):
        try:
            self.db.insert("", ColumnParent(column_family="Family1"), Column(name="email", value="somevalue", timestamp=0), ConsistencyLevel.QUORUM)
            self.assertTrue(False)
        except DatabaseError as e:
            self.assertEqual(e.why, "Key may not be empty")
        else:
            self.assertTrue(False)
Пример #4
0
class TestDatabase(unittest.TestCase):
    def setUp(self):
        self.mc = Memcached(prefix="mgtest-")
        self.db = CassandraPool().dbget("mgtest", self.mc)
        self.cleanup()

    def tearDown(self):
        self.cleanup()
        pass

    def cleanup(self):
        conn = self.db.pool.cget()
        try:
            conn.cass.system_drop_keyspace("mgtest")
        except Exception as e:
            pass
        self.db.pool.success(conn)
        self.mc.delete("Cassandra-KS-mgtest")
        self.mc.delete("Cassandra-CF-mgtest-Family1")
        self.mc.delete("Cassandra-CF-mgtest-Family2")
        self.mc.delete("Cassandra-CF-mgtest-Family3")

    def testputget(self):
        timestamp = time.time() * 1000
        self.db.insert(
            "1", ColumnParent(column_family="Family1"),
            Column(name="email",
                   value="[email protected] - проверка",
                   timestamp=timestamp), ConsistencyLevel.QUORUM)
        self.db.get_slice(
            "1", ColumnParent(column_family="Family1"),
            SlicePredicate(slice_range=SliceRange(start="", finish="")),
            ConsistencyLevel.QUORUM)

    def testerror(self):
        try:
            self.db.insert(
                "", ColumnParent(column_family="Family1"),
                Column(name="email", value="somevalue", timestamp=0),
                ConsistencyLevel.QUORUM)
            self.assertTrue(False)
        except DatabaseError as e:
            self.assertEqual(e.why, "Key may not be empty")
        else:
            self.assertTrue(False)
Пример #5
0
 def setUp(self):
     mg.test.testorm.TestORM.setUp(self)
     self.mc = Memcached(prefix="mgtest-")
     self.db = CassandraPool().dbget("mgtest", mc=self.mc)
Пример #6
0
 def setUp(self):
     self.mc = Memcached(prefix="mgtest-")
Пример #7
0
class TestMemcached(unittest.TestCase):
    def setUp(self):
        self.mc = Memcached(prefix="mgtest-")

    def testsetget(self):
        self.mc.set("key1", "value1")
        self.assertEqual(self.mc.get("key1"), "value1")
        self.mc.delete("key1")
        self.assertEqual(self.mc.get("key1"), None)

    def testgetmulti(self):
        self.mc.set("key1", "value1")
        self.mc.set("key2", "value2")
        self.assertEqual(self.mc.get("key1"), "value1")
        self.assertEqual(self.mc.get("key2"), "value2")
        res = self.mc.get_multi([ "key1", "key2" ])
        self.assertEqual(res["key1"], "value1")
        self.assertEqual(res["key2"], "value2")

    def testunicode(self):
        self.mc.set("key1", u"проверка")
        self.assertEqual(type(self.mc.get("key1")), unicode)
        self.mc.set("key1", u"проверка1")
        self.mc.set("key2", u"проверка2")
        self.assertEqual(self.mc.get("key1"), u"проверка1")
        self.assertEqual(self.mc.get("key2"), u"проверка2")
        res = self.mc.get_multi([ "key1", "key2" ])
        self.assertEqual(res["key1"], u"проверка1")
        self.assertEqual(res["key2"], u"проверка2")

    def testthreading(self):
        tasks = []
        for i in xrange(0, 100):
            tasks.append(Tasklet.new(self.thread)(i))
        Tasklet.join_all(tasks)

    def thread(self, n):
        for i in xrange(0, 50):
            self.mc.set("key%d" % n, "value%d" % n)
            self.assertEqual(self.mc.get("key%d" % n), "value%d" % n)
            self.mc.delete("key%d" % n)
            self.assertEqual(self.mc.get("key%d" % n), None)

    def testerrors(self):
        mc = Memcached(pool=MemcachedPool(size=4))
        tasks = []
        for i in xrange(0, 100):
            tasks.append(Tasklet.new(self.error_thread)(mc))
        for i in xrange(0, 100):
            tasks.append(Tasklet.new(self.handled_thread)(mc))
        Tasklet.join_all(tasks)

    def handled_thread(self, mc):
        for i in xrange(0, 50):
            try:
                # must not happen
                self.assertEqual(mc.get(""), 1)
            except MemcachedEmptyKeyError:
                pass
            except Exception:
                self.assertFalse("must not happen")

    def error_thread(self, mc):
        for i in xrange(0, 50):
            self.assertEqual(mc.get(" "), None)
Пример #8
0
 def setUp(self):
     self.mc = Memcached(prefix="mgtest-")
Пример #9
0
class TestMemcached(unittest.TestCase):
    def setUp(self):
        self.mc = Memcached(prefix="mgtest-")

    def testsetget(self):
        self.mc.set("key1", "value1")
        self.assertEqual(self.mc.get("key1"), "value1")
        self.mc.delete("key1")
        self.assertEqual(self.mc.get("key1"), None)

    def testgetmulti(self):
        self.mc.set("key1", "value1")
        self.mc.set("key2", "value2")
        self.assertEqual(self.mc.get("key1"), "value1")
        self.assertEqual(self.mc.get("key2"), "value2")
        res = self.mc.get_multi(["key1", "key2"])
        self.assertEqual(res["key1"], "value1")
        self.assertEqual(res["key2"], "value2")

    def testunicode(self):
        self.mc.set("key1", u"проверка")
        self.assertEqual(type(self.mc.get("key1")), unicode)
        self.mc.set("key1", u"проверка1")
        self.mc.set("key2", u"проверка2")
        self.assertEqual(self.mc.get("key1"), u"проверка1")
        self.assertEqual(self.mc.get("key2"), u"проверка2")
        res = self.mc.get_multi(["key1", "key2"])
        self.assertEqual(res["key1"], u"проверка1")
        self.assertEqual(res["key2"], u"проверка2")

    def testthreading(self):
        tasks = []
        for i in xrange(0, 100):
            tasks.append(Tasklet.new(self.thread)(i))
        Tasklet.join_all(tasks)

    def thread(self, n):
        for i in xrange(0, 50):
            self.mc.set("key%d" % n, "value%d" % n)
            self.assertEqual(self.mc.get("key%d" % n), "value%d" % n)
            self.mc.delete("key%d" % n)
            self.assertEqual(self.mc.get("key%d" % n), None)

    def testerrors(self):
        mc = Memcached(pool=MemcachedPool(size=4))
        tasks = []
        for i in xrange(0, 100):
            tasks.append(Tasklet.new(self.error_thread)(mc))
        for i in xrange(0, 100):
            tasks.append(Tasklet.new(self.handled_thread)(mc))
        Tasklet.join_all(tasks)

    def handled_thread(self, mc):
        for i in xrange(0, 50):
            try:
                # must not happen
                self.assertEqual(mc.get(""), 1)
            except MemcachedEmptyKeyError:
                pass
            except Exception:
                self.assertFalse("must not happen")

    def error_thread(self, mc):
        for i in xrange(0, 50):
            self.assertEqual(mc.get(" "), None)
Пример #10
0
 def setUp(self):
     self.mc = Memcached(prefix="mgtest-")
     self.db = CassandraPool().dbget("mgtest", self.mc)
     self.cleanup()
Пример #11
0
def cleanup():
    mc = Memcached(prefix="mgtest-")
    db = CassandraPool().dbget("mgtest", mc)
    conn = db.pool.cget()
    try:
        conn.cass.system_drop_keyspace("mgtest")
    except Exception as e:
        pass
    db.pool.success(conn)
    mc.delete("Cassandra-KS-mgtest")
    mc.delete("Cassandra-CF-mgtest-Data")
    mc.delete("Cassandra-CF-mgtest-SimpleObject_Objects")
    mc.delete("Cassandra-CF-mgtest-TestObject_Objects")
    mc.delete("Cassandra-CF-mgtest-TestObject_Index_topic")
    mc.delete("Cassandra-CF-mgtest-TestObject_Index_created")
    mc.delete("Cassandra-CF-mgtest-TestObject_Index_index")
    mc.delete("Cassandra-CF-mgtest-TestObject_Index_val")
    mc.delete("Cassandra-CF-mgtest-TestObject_Indexes")
Пример #12
0
 def setUp(self):
     self.mc = Memcached(prefix="mgtest-")
     self.db = CassandraPool().dbget("mgtest", self.mc)
     self.cleanup()