Example #1
0
    def test_modeldict_from_model(self):
        d = ModelDict.from_model(self.child, 'id', 'parent__id', 'parent__name')
        self.assertDictEqual(d, {
            'id': self.child.id,
            'parent__id': self.parent.id,
            'parent__name': 'A'
        })
        self.assertTrue(d.parent)

        _child = Child.objects.create(name='B')
        d = ModelDict.from_model(_child, 'id', 'parent__id', 'parent__name')
        self.assertDictEqual(d, {
            'id': _child.id,
            'parent': None,
        })

        _parent = Node.objects.create(name='A', parent=None)
        _child = Node.objects.create(name='B', parent=_parent)
        _grandchild = Node.objects.create(name='C', parent=_child)

        d = ModelDict.from_model(_grandchild,
                                 test__id='parent__parent__id',
                                 test__name='parent__parent__name')
        self.assertDictEqual(d, {
            'test__id': self.parent.id,
            'test__name': 'A',
        })
        self.assertDictEqual(d.test, {
            'id': self.parent.id,
            'name': 'A',
        })

        _child.parent = None
        _child.save()

        d = ModelDict.from_model(_grandchild,
                                 test__id='parent__parent__id',
                                 test__name='parent__parent__name')
        self.assertDictEqual(d, {
            'test__id': None,
            'test__name': None,
        })
Example #2
0
    def test_modeldict_from_model(self):
        d = ModelDict.from_model(self.child, "id", "parent__id", "parent__name")
        self.assertDictEqual(d, {"id": self.child.id, "parent__id": self.parent.id, "parent__name": "A"})
        self.assertTrue(d.parent)

        _child = Child.objects.create(name="B")
        d = ModelDict.from_model(_child, "id", "parent__id", "parent__name")
        self.assertDictEqual(d, {"id": _child.id, "parent": None})

        _parent = Node.objects.create(name="A", parent=None)
        _child = Node.objects.create(name="B", parent=_parent)
        _grandchild = Node.objects.create(name="C", parent=_child)

        d = ModelDict.from_model(_grandchild, test__id="parent__parent__id", test__name="parent__parent__name")
        self.assertDictEqual(d, {"test__id": self.parent.id, "test__name": "A"})
        self.assertDictEqual(d.test, {"id": self.parent.id, "name": "A"})

        _child.parent = None
        _child.save()

        d = ModelDict.from_model(_grandchild, test__id="parent__parent__id", test__name="parent__parent__name")
        self.assertDictEqual(d, {"test__id": None, "test__name": None})
Example #3
0
 def test_wrong_path(self):
     self.assertRaises(AttributeError, lambda: ModelDict.from_model(self.child, "does__not__exist"))
Example #4
0
 def test_nested(self):
     md = ModelDict()
     md._nested = {'x': 1}
     self.assertEqual(md.x, 1)
Example #5
0
 def test_wrong_path(self):
     self.assertRaises(AttributeError,
                       lambda: ModelDict.from_model(self.child,
                                                    'does__not__exist'))
Example #6
0
 def test_wrong_path(self):
     self.assertRaises(KeyError,
                       lambda: ModelDict.from_model(self.child,
                                                    'does__not__exist'))