def test_merge_documents_3(self): # Insert doc2 into middle of doc 1 doc1 = operations.create_document( owner = self.user ) doc2 = operations.create_document( owner = self.user ) pages = ( [ operations.create_page(doc1) for _ in xrange(5) ] + [ operations.create_page(doc2) for _ in xrange(5) ] ) self.assert_( doc1.num_pages == 5 ) self.assert_( doc2.num_pages == 5 ) operations.merge_documents(doc1, doc2, 3) self.assert_( manager(Document).filter( pk = doc2.pk ).count() == 0 ) self.assert_( doc1.num_pages == 10 ) # First 3 pages of doc1 stay first pages of 10 pager for i in xrange(0,3): self.assert_(pages[i].pk == doc1.pages.get(position=i+1).pk) # all pages from doc2 not starting at 4th page of 10 pager for i in xrange(3,8): self.assert_(pages[i+2].pk == doc1.pages.get(position=i+1).pk) # last tow pages of dooc 1 are now last two pages or 10 pager for i in xrange(8, 10): self.assert_(pages[i-5].pk == doc1.pages.get(position=i+1).pk)
def test_merge_documents_2(self): # Prepend doc2 to beginning of doc 1 doc1 = operations.create_document( owner = self.user ) doc2 = operations.create_document( owner = self.user ) pages = ( [ operations.create_page(doc1) for _ in xrange(5) ] + [ operations.create_page(doc2) for _ in xrange(5) ] ) self.assert_( doc1.num_pages == 5 ) self.assert_( doc2.num_pages == 5 ) operations.merge_documents(doc1, doc2, 0) self.assert_( manager(Document).filter( pk = doc2.pk ).count() == 0 ) self.assert_( doc1.num_pages == 10 ) for i in xrange(5): self.assert_(pages[i].pk == doc1.pages.get(position=i+6).pk) self.assert_(pages[i+5].pk == doc1.pages.get(position=i+1).pk)