示例#1
0
        public void TestOBJ()
        {
            //OBJ            = b'o'   # build & push class instance
            ClassDict result = (ClassDict)U("\u0080\u0002(c__main__\nThing\no}U\u0005valueK sb.");

            Assert.Equal("__main__.Thing", result.ClassName);
            Assert.Equal(32, result["value"]);
        }
示例#2
0
        public void TestINST()
        {
            //INST           = b'i'   # build & push class instance
            ClassDict result = (ClassDict)U("(i__main__\nThing\n(dS'value'\nI32\nsb.");

            Assert.Equal("__main__.Thing", result.ClassName);
            Assert.Equal(32, result["value"]);
        }
示例#3
0
        public void TestClassDictConstructorSetsClass()
        {
            ClassDict cd = new ClassDict("module", "myclass");

            Assert.Equal("module.myclass", cd["__class__"]);

            ClassDictConstructor cdc = new ClassDictConstructor("module", "myclass");

            cd = (ClassDict)cdc.construct(new object[] {});
            Assert.Equal("module.myclass", cd["__class__"]);

            Assert.Equal("module.myclass", cd.ClassName);
        }
示例#4
0
        public void TestUnpickleCustomClassAsClassDict()
        {
            byte[] pickled = { 128, 2, 99, 95, 95, 109, 97, 105, 110, 95, 95, 10, 67, 117, 115, 115, 115, 115, 115, 115, 97, 122, 122, 10, 113, 0, 41, 129, 113, 1, 125, 113, 2, 40, 85, 3, 97, 103, 101, 113, 3, 75, 34, 85, 6, 118, 97, 108, 117, 101, 115, 113, 4, 93, 113, 5, 40, 75, 1, 75, 2, 75, 3, 101, 85, 4, 110, 97, 109, 101, 113, 6, 85, 5, 72, 97, 114, 114, 121, 113, 7, 117, 98, 46 };

            ClassDict cd = (ClassDict)U(pickled);

            Assert.Equal("__main__.Cussssssazz", cd["__class__"]);
            Assert.Equal("Harry", cd["name"]);
            Assert.Equal(34, cd["age"]);
            Assert.Equal(new ArrayList {
                1, 2, 3
            }, cd["values"]);
        }