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, }) d = ModelDict.from_model(self.child) self.assertEqual(len(d), 5)
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, })
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})
def test_wrong_path(self): self.assertRaises( AttributeError, lambda: ModelDict.from_model(self.child, 'does__not__exist'))
def test_wrong_path(self): self.assertRaises(AttributeError, lambda: ModelDict.from_model(self.child, "does__not__exist"))
def test_wrong_path(self): self.assertRaises(KeyError, lambda: ModelDict.from_model(self.child, 'does__not__exist'))