import six
from nested_admin.tests.base import BaseNestedAdminTestCase
from .models import Root, AX, AY, BX, BY
[docs]class TestIdenticalPrefixes(BaseNestedAdminTestCase):
root_model = Root
[docs] def test_add_to_empty_one_deep(self):
root = self.root_model.objects.create(slug='test')
AX.objects.create(foo='1', root=root, position=0)
AY.objects.create(foo='2', root=root, position=0)
self.load_admin(root)
self.delete_inline([(1, 0)])
self.save_form()
ay_objs = AY.objects.all()
self.assertEqual(len(ay_objs), 0, "AY inline was not deleted")
[docs] def test_drag_and_drop(self):
root = self.root_model.objects.create(slug='group')
ax0 = AX.objects.create(foo='x0', root=root, position=0)
ax1 = AX.objects.create(foo='x1', root=root, position=1)
ay = AY.objects.create(foo='y0', root=root, position=0)
BX.objects.create(bar='ax0bx0', a=ax0, position=0)
BX.objects.create(bar='ax0bx1', a=ax0, position=1)
BY.objects.create(bar='ax0by0', a=ax0, position=0)
BY.objects.create(bar='ax0by1', a=ax0, position=1)
BX.objects.create(bar='ax1bx0', a=ax1, position=0)
BX.objects.create(bar='ax1bx1', a=ax1, position=1)
BY.objects.create(bar='ax1by0', a=ax1, position=0)
BY.objects.create(bar='ax1by1', a=ax1, position=1)
BX.objects.create(bar='ay0bx0', a=ay, position=0)
BX.objects.create(bar='ay0bx1', a=ay, position=1)
BY.objects.create(bar='ay0by0', a=ay, position=0)
BY.objects.create(bar='ay0by1', a=ay, position=1)
self.load_admin(root)
# Move 'ay0by0' to be the first inline in AX[0]/BY[0]
self.drag_and_drop_item(from_indexes=[(1, 0), (1, 0)], to_indexes=[(0, 0), (1, 0)],
screenshot_hack=True)
self.save_form()
moved_item = BY.objects.get(bar='ay0by0')
self.assertEqual(six.text_type(moved_item), 'Root(group)/AX[0](x0)/BY[0](ay0by0)',
"Item was not moved to the correct position")