def test_number(self):
        databag = SerializedDataBag(name='number')
        databag.data['num'] = 1
        self.assertEqual(databag.data['num'], 1)

        databag.save()
        databag = SerializedDataBag.objects.get(name='number')
        self.assertEqual(databag.data['num'], 1)

        databag = SerializedDataBag(name='number', data={'num': 1})
        self.assertEqual(databag.data['num'], 1)
    def test_unicode(self):
        i = SerializedDataBag()
        i.data['key'] = 'è'
        i.save()

        i.data['key'] = u'è'
        i.save()
    def test_unicode(self):
        i = SerializedDataBag()
        i.data['key'] = 'è'
        i.save()

        i.data['key'] = u'è'
        i.save()
    def test_full_clean(self):
        databag = SerializedDataBag(name='number')
        databag.data['num'] = 1
        self.assertEqual(databag.data['num'], 1)

        databag.full_clean()
        databag.save()
        databag = SerializedDataBag.objects.get(name='number')
        self.assertEqual(databag.data['num'], 1)
    def test_properties_hstore(self):
        """
        Make sure the hstore field does what it is supposed to.
        """
        instance = SerializedDataBag()
        test_props = {'foo': 'bar', 'size': '3'}

        instance.name = "foo"
        instance.data = test_props
        instance.save()

        self.assertIsInstance(instance.data, dict)
        self.assertEqual(instance.data, test_props)
        instance = SerializedDataBag.objects.get(pk=instance.pk)

        self.assertIsInstance(instance.data, dict)

        self.assertEqual(instance.data, test_props)
        self.assertEqual(instance.data['size'], '3')
        self.assertIn('foo', instance.data)
    def test_number(self):
        databag = SerializedDataBag(name='number')
        databag.data['num'] = 1
        self.assertEqual(databag.data['num'], 1)

        databag.save()
        databag = SerializedDataBag.objects.get(name='number')
        self.assertEqual(databag.data['num'], 1)

        databag = SerializedDataBag(name='number', data={'num': 1})
        self.assertEqual(databag.data['num'], 1)
    def test_full_clean(self):
        databag = SerializedDataBag(name='number')
        databag.data['num'] = 1
        self.assertEqual(databag.data['num'], 1)

        databag.full_clean()
        databag.save()
        databag = SerializedDataBag.objects.get(name='number')
        self.assertEqual(databag.data['num'], 1)
    def test_properties_hstore(self):
        """
        Make sure the hstore field does what it is supposed to.
        """
        instance = SerializedDataBag()
        test_props = {'foo': 'bar', 'size': '3'}

        instance.name = "foo"
        instance.data = test_props
        instance.save()

        self.assertIsInstance(instance.data, dict)
        self.assertEqual(instance.data, test_props)
        instance = SerializedDataBag.objects.get(pk=instance.pk)

        self.assertIsInstance(instance.data, dict)

        self.assertEqual(instance.data, test_props)
        self.assertEqual(instance.data['size'], '3')
        self.assertIn('foo', instance.data)
    def test_hstore_model_field_validation(self):
        d = SerializedDataBag()
        with self.assertRaises(ValidationError):
            d.full_clean()

        d.data = 'test'
        with self.assertRaises(ValidationError):
            d.full_clean()

        d.data = '["test"]'
        with self.assertRaises(ValidationError):
            d.full_clean()

        d.data = ["test"]
        with self.assertRaises(ValidationError):
            d.full_clean()

        d.data = {
            'a': 1,
            'b': 2.2,
            'c': ['a', 'b'],
            'd': {'test': 'test'}
        }
        with self.assertRaises(ValidationError):
            d.full_clean()
 def test_str(self):
     d = SerializedDataBag()
     self.assertEqual(str(d.data), '{}')
    def test_hstore_model_field_validation(self):
        d = SerializedDataBag()
        with self.assertRaises(ValidationError):
            d.full_clean()

        d.data = 'test'
        with self.assertRaises(ValidationError):
            d.full_clean()

        d.data = '["test"]'
        with self.assertRaises(ValidationError):
            d.full_clean()

        d.data = ["test"]
        with self.assertRaises(ValidationError):
            d.full_clean()

        d.data = {'a': 1, 'b': 2.2, 'c': ['a', 'b'], 'd': {'test': 'test'}}
        with self.assertRaises(ValidationError):
            d.full_clean()