def test_get_reference(self): x = amf3.Context() y = [1, 2, 3] z = {'spam': 'eggs'} spam_alias = pyamf.register_class(Spam, 'spam.eggs') class Foo: pass foo_alias = pyamf.register_class(Foo, 'foo.bar') a = amf3.ClassDefinition(spam_alias) b = amf3.ClassDefinition(foo_alias) ref1 = x.addObject(y) ref2 = x.addObject(z) x.addString('abc') x.addString('def') x.addClass(a, Spam) x.addClass(b, Foo) self.assertEqual(x.getObjectReference(y), ref1) self.assertEqual(x.getObjectReference(z), ref2) self.assertEqual(x.getObjectReference({}), -1) self.assertEqual(x.getStringReference('abc'), 0) self.assertEqual(x.getStringReference('def'), 1) self.assertEqual(x.getStringReference('asdfas'), -1) self.assertEqual(x.getClass(Spam), a) self.assertEqual(x.getClass(Foo), b) self.assertEqual(x.getClass(object()), None)
def test_get_by_reference(self): x = amf3.Context() y = [1, 2, 3] z = {'spam': 'eggs'} alias_spam = pyamf.register_class(Spam, 'spam.eggs') class Foo: pass class Bar: pass alias_foo = pyamf.register_class(Foo, 'foo.bar') a = amf3.ClassDefinition(alias_spam) b = amf3.ClassDefinition(alias_foo) x.addObject(y) x.addObject(z) x.addString('abc') x.addString('def') x.addClass(a, Foo) x.addClass(b, Bar) self.assertEqual(x.getObject(0), y) self.assertEqual(x.getObject(1), z) self.assertEqual(x.getObject(2), None) self.assertRaises(TypeError, x.getObject, '') self.assertRaises(TypeError, x.getObject, 2.2323) self.assertEqual(x.getString(0), 'abc') self.assertEqual(x.getString(1), 'def') self.assertEqual(x.getString(2), None) self.assertRaises(TypeError, x.getString, '') self.assertRaises(TypeError, x.getString, 2.2323) self.assertEqual(x.getClass(Foo), a) self.assertEqual(x.getClass(Bar), b) self.assertEqual(x.getClass(2), None) self.assertEqual(x.getClassByReference(0), a) self.assertEqual(x.getClassByReference(1), b) self.assertEqual(x.getClassByReference(2), None) self.assertEqual(x.getObject(2), None) self.assertEqual(x.getString(2), None) self.assertEqual(x.getClass(2), None) self.assertEqual(x.getClassByReference(2), None)
def test_external(self): self.alias.external = True x = amf3.ClassDefinition(self.alias) self.assertTrue(x.alias is self.alias) self.assertEqual(x.encoding, 1) self.assertEqual(x.attr_len, 0)
def test_mixed(self): self.alias.static_attrs = ['foo', 'bar'] x = amf3.ClassDefinition(self.alias) self.assertTrue(x.alias is self.alias) self.assertEqual(x.encoding, 2) self.assertEqual(x.attr_len, 2)
def test_static(self): self.alias.static_attrs = ['foo', 'bar'] self.alias.dynamic = False x = amf3.ClassDefinition(self.alias) self.assertTrue(x.alias is self.alias) self.assertEqual(x.encoding, 0) self.assertEqual(x.attr_len, 2)
def test_add_class(self): x = amf3.Context() alias = pyamf.register_class(Spam, 'spam.eggs') y = amf3.ClassDefinition(alias) self.assertEqual(x.addClass(y, Spam), 0) self.assertEqual(x.classes, {Spam: y}) self.assertEqual(x.class_ref, {0: y}) self.assertEqual(len(x.class_ref), 1)
def test_dynamic(self): self.assertFalse(self.alias.is_compiled()) x = amf3.ClassDefinition(self.alias) self.assertTrue(x.alias is self.alias) self.assertEqual(x.encoding, 2) self.assertEqual(x.attr_len, 0) self.assertTrue(self.alias.is_compiled())