def test_move_after_last(self, m_pc):
     """Move obj to last position if other is last."""
     o1 = OrderingListMixin()
     o2 = OrderingListMixin()
     o3 = OrderingListMixin()
     l = [o1, o2, o3]
     m_pc.return_value = l
     o1.move_after(o3)
     assert l == [o2, o3, o1]
 def test_move_after_backwards(self, m_pc):
     """Move obj to position after other if other is before obj."""
     o1 = OrderingListMixin()
     o2 = OrderingListMixin()
     o3 = OrderingListMixin()
     l = [o1, o2, o3]
     m_pc.return_value = l
     o3.move_after(o1)
     assert l == [o1, o3, o2]
 def test_move_after_forwards(self, m_pc):
     """Move obj to position after other if other is after obj."""
     o1 = OrderingListMixin()
     o2 = OrderingListMixin()
     o3 = OrderingListMixin()
     l = [o1, o2, o3]
     m_pc.return_value = l
     o1.move_after(o2)
     assert l == [o2, o1, o3]
 def test_move_last_forward(self, m_pc):
     """Don't move last object if attempting to move forward."""
     o1 = OrderingListMixin()
     o2 = OrderingListMixin()
     o3 = OrderingListMixin()
     l = [o1, o2, o3]
     m_pc.return_value = l
     o3.move(1)
     assert l == [o1, o2, o3]
     o3.move(42)
     assert l == [o1, o2, o3]
 def test_move_first_backward(self, m_pc):
     """Don't move object backward if it's first."""
     o1 = OrderingListMixin()
     o2 = OrderingListMixin()
     o3 = OrderingListMixin()
     l = [o1, o2, o3]
     m_pc.return_value = l
     o1.move(-1)
     assert l == [o1, o2, o3]
     o1.move(-42)
     assert l == [o1, o2, o3]
 def test_move_after_self(self, m_pc):
     """Keep order the same if for some reason other is self."""
     o1 = OrderingListMixin()
     o2 = OrderingListMixin()
     o3 = OrderingListMixin()
     l = [o1, o2, o3]
     m_pc.return_value = l
     o1.move_after(o1)
     assert l == [o1, o2, o3]
     o2.move_after(o2)
     assert l == [o1, o2, o3]
     o3.move_after(o3)
     assert l == [o1, o2, o3]
 def test_move_backward(self, m_pc):
     """Move an object backward if delta is negative."""
     o1 = OrderingListMixin()
     o2 = OrderingListMixin()
     o3 = OrderingListMixin()
     l = [o1, o2, o3]
     m_pc.return_value = l
     o3.move(-1)
     assert l == [o1, o3, o2]
     o2.move(-2)
     assert l == [o2, o1, o3]
 def test_move_past_last(self, m_pc):
     """Move object to end position if it would otherwise go past."""
     o1 = OrderingListMixin()
     o2 = OrderingListMixin()
     o3 = OrderingListMixin()
     l = [o1, o2, o3]
     m_pc.return_value = l
     o1.move(3)
     assert l == [o2, o3, o1]
     o2.move(42)
     assert l == [o3, o1, o2]
 def test_move_forward(self, m_pc):
     """Move an object forward in its parent collection."""
     o1 = OrderingListMixin()
     o2 = OrderingListMixin()
     o3 = OrderingListMixin()
     l = [o1, o2, o3]
     m_pc.return_value = l
     o1.move(1)
     assert l == [o2, o1, o3]
     o2.move(2)
     assert l == [o1, o3, o2]
 def test_move_before_beginning(self, m_pc):
     """Move object to first position if delta would put it before."""
     o1 = OrderingListMixin()
     o2 = OrderingListMixin()
     o3 = OrderingListMixin()
     l = [o1, o2, o3]
     m_pc.return_value = l
     o3.move(-3)
     assert l == [o3, o1, o2]
     o2.move(-42)
     assert l == [o2, o3, o1]