def test_fetch_call_descriptor(self):
        hash = hashlib.sha1("test1").hexdigest()
        method = "test1"
        returnval = {}
        args = ()

        cd = CallDescriptor(hash=hash,
                            stack='',
                            method=method,
                            returnval=returnval,
                            args=args)
        cd.save()

        cd = fetch(hash)
        self.assertEquals(cd.hash, hash)
        self.assertEquals(cd.methodname, method)

        hash = hashlib.sha1("test1").hexdigest()
        method = "test2"
        cd.methodname = method
        cd.save()

        cd = fetch(hash)
        self.assertEquals(cd.hash, hash)
        self.assertEquals(cd.methodname, method)

        hash = hashlib.sha1("test3").hexdigest()
        method = "test3"
        cd.hash = hash
        cd.methodname = method
        cd.save()

        cd = fetch(hash)
        self.assertEquals(cd.hash, hash)
        self.assertEquals(cd.methodname, method)
    def test_call_descriptor(self):
        hash = hashlib.sha1("adsf").hexdigest()
        method = "mymethod"
        returnval = {'thisis': ['my', 'return', 'val']}
        args = ('a', 'b', 'c')
        #self, hash='', stack='', method='', returnval='', args='', kwargs='' ):
        cd = CallDescriptor(hash=hash,
                            stack='',
                            method=method,
                            returnval=returnval,
                            args=args)

        cd.save()

        self.assertEqual(cd.hash, hash)
        self.assertEqual(cd.methodname, method)
        self.assertEqual(cd.returnval, returnval)
        self.assertEqual(cd.args, args)

        cd = fetch(hash)

        self.assertEqual(cd.hash, hash)
        self.assertEqual(cd.methodname, method)
        self.assertEqual(cd.returnval, returnval)
        self.assertEqual(cd.args, args)