class GetEncodableAttributesTestCase(unittest.TestCase): """ Tests for L{ClassAlias.getEncodableAttributes} """ def setUp(self): self.alias = ClassAlias(Spam, 'foo', defer=True) self.obj = Spam() def test_empty(self): attrs = self.alias.getEncodableAttributes(self.obj) self.assertEqual(attrs, {}) def test_static(self): self.alias.static_attrs = ['foo', 'bar'] self.alias.compile() self.obj.foo = 'bar' # leave self.obj.bar self.assertFalse(hasattr(self.obj, 'bar')) attrs = self.alias.getEncodableAttributes(self.obj) self.assertEqual(attrs, {'foo': 'bar', 'bar': pyamf.Undefined}) def test_not_dynamic(self): self.alias.compile() self.alias.dynamic = False self.assertEqual(self.alias.getEncodableAttributes(self.obj), {}) def test_dynamic(self): self.alias.compile() self.assertEqual(self.alias.encodable_properties, None) self.obj.foo = 'bar' self.obj.bar = 'foo' attrs = self.alias.getEncodableAttributes(self.obj) self.assertEqual(attrs, {'foo': 'bar', 'bar': 'foo'}) def test_proxy(self): from pyamf import flex c = pyamf.get_encoder(pyamf.AMF3) self.alias.proxy_attrs = ('foo', 'bar') self.alias.compile() self.assertEqual(self.alias.proxy_attrs, ['bar', 'foo']) self.obj.foo = ['bar', 'baz'] self.obj.bar = {'foo': 'gak'} attrs = self.alias.getEncodableAttributes(self.obj, c) k = list(attrs.keys()) k.sort() self.assertEqual(k, ['bar', 'foo']) self.assertTrue(isinstance(attrs['foo'], flex.ArrayCollection)) self.assertEqual(attrs['foo'], ['bar', 'baz']) self.assertTrue(isinstance(attrs['bar'], flex.ObjectProxy)) self.assertEqual(attrs['bar']._amf_object, {'foo': 'gak'}) def test_synonym(self): self.alias.synonym_attrs = {'foo': 'bar'} self.alias.compile() self.assertFalse(self.alias.shortcut_encode) self.assertFalse(self.alias.shortcut_decode) self.obj.foo = 'bar' self.obj.spam = 'eggs' ret = self.alias.getEncodableAttributes(self.obj) self.assertEqual(ret, {'bar': 'bar', 'spam': 'eggs'})
class GetEncodableAttributesTestCase(unittest.TestCase): """ Tests for L{ClassAlias.getEncodableAttributes} """ def setUp(self): self.alias = ClassAlias(Spam, 'foo', defer=True) self.obj = Spam() def test_empty(self): sa, da = self.alias.getEncodableAttributes(self.obj) self.assertEquals(sa, da, None) def test_static(self): self.alias.static_attrs = ['foo', 'bar'] self.alias.compile() self.obj.foo = 'bar' # leave self.obj.bar self.assertFalse(hasattr(self.obj, 'bar')) sa, da = self.alias.getEncodableAttributes(self.obj) self.assertEquals(sa, {'foo': 'bar', 'bar': pyamf.Undefined}) self.assertEquals(da, None) def test_not_dynamic(self): self.alias.compile() self.alias.dynamic = False self.assertEquals(self.alias.getEncodableAttributes(self.obj), (None, None)) def test_dynamic(self): self.alias.compile() self.assertEquals(self.alias.encodable_properties, None) self.obj.foo = 'bar' self.obj.bar = 'foo' sa, da = self.alias.getEncodableAttributes(self.obj) self.assertEquals(sa, None) self.assertEquals(da, {'foo': 'bar', 'bar': 'foo'}) def test_proxy(self): from pyamf import flex self.alias.amf3 = True self.alias.proxy_attrs = ('foo', 'bar') self.alias.compile() self.assertEquals(self.alias.proxy_attrs, ['bar', 'foo']) self.obj.foo = ['bar', 'baz'] self.obj.bar = {'foo': 'gak'} sa, da = self.alias.getEncodableAttributes(self.obj) self.assertEquals(sa, None) self.assertEquals(da.keys(), ['foo', 'bar']) self.assertTrue(isinstance(da['foo'], flex.ArrayCollection)) self.assertEquals(da['foo'], ['bar', 'baz']) self.assertTrue(isinstance(da['bar'], flex.ObjectProxy)) self.assertEquals(da['bar']._amf_object, {'foo': 'gak'})
class GetEncodableAttributesTestCase(unittest.TestCase): """ Tests for L{ClassAlias.getEncodableAttributes} """ def setUp(self): self.alias = ClassAlias(Spam, 'foo', defer=True) self.obj = Spam() def test_empty(self): attrs = self.alias.getEncodableAttributes(self.obj) self.assertEqual(attrs, {}) def test_static(self): self.alias.static_attrs = ['foo', 'bar'] self.alias.compile() self.obj.foo = 'bar' # leave self.obj.bar self.assertFalse(hasattr(self.obj, 'bar')) attrs = self.alias.getEncodableAttributes(self.obj) self.assertEqual(attrs, {'foo': 'bar', 'bar': pyamf.Undefined}) def test_not_dynamic(self): self.alias.compile() self.alias.dynamic = False self.assertEqual(self.alias.getEncodableAttributes(self.obj), {}) def test_dynamic(self): self.alias.compile() self.assertEqual(self.alias.encodable_properties, None) self.obj.foo = 'bar' self.obj.bar = 'foo' attrs = self.alias.getEncodableAttributes(self.obj) self.assertEqual(attrs, {'foo': 'bar', 'bar': 'foo'}) def test_proxy(self): from pyamf import flex c = pyamf.get_encoder(pyamf.AMF3) self.alias.proxy_attrs = ('foo', 'bar') self.alias.compile() self.assertEqual(self.alias.proxy_attrs, ['bar', 'foo']) self.obj.foo = ['bar', 'baz'] self.obj.bar = {'foo': 'gak'} attrs = self.alias.getEncodableAttributes(self.obj, c) k = attrs.keys() k.sort() self.assertEqual(k, ['bar', 'foo']) self.assertTrue(isinstance(attrs['foo'], flex.ArrayCollection)) self.assertEqual(attrs['foo'], ['bar', 'baz']) self.assertTrue(isinstance(attrs['bar'], flex.ObjectProxy)) self.assertEqual(attrs['bar']._amf_object, {'foo': 'gak'}) def test_synonym(self): self.alias.synonym_attrs = {'foo': 'bar'} self.alias.compile() self.assertFalse(self.alias.shortcut_encode) self.assertFalse(self.alias.shortcut_decode) self.obj.foo = 'bar' self.obj.spam = 'eggs' ret = self.alias.getEncodableAttributes(self.obj) self.assertEquals(ret, {'bar': 'bar', 'spam': 'eggs'})
class GetEncodableAttributesTestCase(unittest.TestCase): """ Tests for L{ClassAlias.getEncodableAttributes} """ def setUp(self): self.alias = ClassAlias(Spam, 'foo', defer=True) self.obj = Spam() def test_empty(self): sa, da = self.alias.getEncodableAttributes(self.obj) self.assertEquals(sa, da, None) def test_static(self): self.alias.static_attrs = ['foo', 'bar'] self.alias.compile() self.obj.foo = 'bar' # leave self.obj.bar self.assertFalse(hasattr(self.obj, 'bar')) sa, da = self.alias.getEncodableAttributes(self.obj) self.assertEquals(sa, {'foo': 'bar', 'bar': pyamf.Undefined}) self.assertEquals(da, None) def test_not_dynamic(self): self.alias.compile() self.alias.dynamic = False self.assertEquals(self.alias.getEncodableAttributes(self.obj), (None, None)) def test_dynamic(self): self.alias.compile() self.assertEquals(self.alias.encodable_properties, None) self.obj.foo = 'bar' self.obj.bar = 'foo' sa, da = self.alias.getEncodableAttributes(self.obj) self.assertEquals(sa, None) self.assertEquals(da, {'foo': 'bar', 'bar': 'foo'}) def test_proxy(self): from pyamf import flex self.alias.amf3 = True self.alias.proxy_attrs = ('foo', 'bar') self.alias.compile() self.assertEquals(self.alias.proxy_attrs, ['bar', 'foo']) self.obj.foo = ['bar', 'baz'] self.obj.bar = {'foo': 'gak'} sa, da = self.alias.getEncodableAttributes(self.obj) self.assertEquals(sa, None) self.assertEquals(da.keys(), ['foo', 'bar']) self.assertTrue(isinstance(da['foo'], flex.ArrayCollection)) self.assertEquals(da['foo'], ['bar', 'baz']) self.assertTrue(isinstance(da['bar'], flex.ObjectProxy)) self.assertEquals(da['bar']._amf_object, {'foo': 'gak'})