def test_new_module_inserted(self, cursor): self.target() binder = use_cases.setup_COMPLEX_BOOK_ONE_in_archive(self, cursor) cursor.connection.commit() cursor.execute("""\ SELECT module_ident FROM modules WHERE portal_type = 'Collection' ORDER BY module_ident DESC LIMIT 1""") module_ident = cursor.fetchone()[0] wait_for_module_state(module_ident) cursor.execute("""\ SELECT nodeid, is_collated FROM trees WHERE documentid = %s ORDER BY nodeid""", (module_ident,)) is_collated = [i[1] for i in cursor.fetchall()] self.assertEqual([False, True], is_collated) content = get_collated_content( binder[0][0].ident_hash, binder.ident_hash, cursor) self.assertIn('there will be cake', content[:]) cursor.execute("""\ SELECT state FROM post_publications WHERE module_ident = %s ORDER BY timestamp DESC""", (module_ident,)) self.assertEqual('Done/Success', cursor.fetchone()[0])
def test_new_module_inserted(self, cursor): self.target() binder = use_cases.setup_COMPLEX_BOOK_ONE_in_archive(self, cursor) cursor.connection.commit() cursor.execute("""\ SELECT module_ident FROM modules WHERE portal_type = 'Collection' ORDER BY module_ident DESC LIMIT 1""") module_ident = cursor.fetchone()[0] wait_for_module_state(module_ident) cursor.execute( """\ SELECT nodeid, is_collated FROM trees WHERE documentid = %s ORDER BY nodeid""", (module_ident, )) is_collated = [i[1] for i in cursor.fetchall()] self.assertEqual([False, True], is_collated) content = get_collated_content(binder[0][0].ident_hash, binder.ident_hash, cursor) self.assertIn('there will be cake', content[:]) cursor.execute( """\ SELECT state FROM post_publications WHERE module_ident = %s ORDER BY timestamp DESC""", (module_ident, )) self.assertEqual('Done/Success', cursor.fetchone()[0])
def test_revised_module_inserted(self, cursor): self.target() binder = use_cases.setup_COMPLEX_BOOK_ONE_in_archive(self, cursor) cursor.connection.commit() revised = deepcopy(use_cases.COMPLEX_BOOK_ONE) revised.id = binder.id revised.metadata['cnx-archive-uri'] = binder.id revised.metadata['version'] = '2.1' revised[0][0] = binder[0][0] revised[0][1] = binder[0][1] revised[1][0] = binder[1][0] revised[1][1] = binder[1][1] revised.resources.append( cnxepub.Resource( 'ruleset.css', io.BytesIO("""\ p.para { content: "Ruleset applied"; } /* copied from cnx-recipes books/rulesets/output/physics.css */ body > div[data-type="page"]:pass(20)::after, body > div[data-type="composite-page"]:pass(20)::after { content: pending(page-link); move-to: eob-toc; container: li; } body > div[data-type='chapter'] > h1[data-type='document-title']:pass(20) { copy-to: eoc-toc; } body > div[data-type='chapter'] > div[data-type="page"]:pass(20), body > div[data-type='chapter'] > div[data-type="composite-page"]:pass(20) { string-set: page-idi attr(id); } body > div[data-type='chapter'] > div[data-type="page"] > [data-type='document-title']:pass(20), body > div[data-type='chapter'] > div[data-type="composite-page"] > [data-type='document-title']:pass(20) { copy-to: page-title; } body > div[data-type='chapter'] > div[data-type="page"]:pass(20)::after, body > div[data-type='chapter'] > div[data-type="composite-page"]:pass(20)::after { content: pending(page-title); attr-href: "#" string(page-id); container: a; move-to: page-link; } body > div[data-type='chapter'] > div[data-type="page"]:pass(20)::after, body > div[data-type='chapter'] > div[data-type="composite-page"]:pass(20)::after { content: pending(page-link); move-to: eoc-toc-pages; container: li; } body > div[data-type='chapter']:pass(20)::after { content: pending(eoc-toc-pages); container: ol; class: chapter; move-to: eoc-toc; } body > div[data-type='chapter']:pass(20)::after { content: pending(eoc-toc); container: li; move-to: eob-toc; } body > div[data-type="unit"] > h1[data-type='document-title']:pass(20) { copy-to: eou-toc; } body > div[data-type="unit"] > div[data-type='chapter'] > h1[data-type='document-title']:pass(20) { copy-to: eoc-toc; } body > div[data-type="unit"] > div[data-type='chapter'] > div[data-type="page"] > [data-type='document-title']:pass(20), body > div[data-type="unit"] > div[data-type='chapter'] div[data-type="composite-page"] > [data-type='document-title']:pass(20) { copy-to: page-title; } body > div[data-type="unit"] > div[data-type='chapter'] > div[data-type="page"]:pass(20)::after, body > div[data-type="unit"] > div[data-type='chapter'] div[data-type="composite-page"]:pass(20)::after { content: pending(page-title); move-to: eoc-toc-pages; container: li; } body > div[data-type="unit"] > div[data-type='chapter']:pass(20)::after { content: pending(eoc-toc-pages); container: ol; class: chapter; move-to: eoc-toc; } body > div[data-type="unit"] > div[data-type='chapter']:pass(20)::after { content: pending(eoc-toc); container: li; move-to: eou-toc-chapters; } body > div[data-type="unit"]:pass(20)::after { content: pending(eou-toc-chapters); container: ol; class: unit; move-to: eou-toc; } body > div[data-type="unit"]:pass(20)::after { content: pending(eou-toc); container: li; move-to: eob-toc; } nav#toc:pass(30) { content: ''; } nav#toc:pass(30)::after { content: pending(eob-toc); container: ol; } """), 'text/css', filename='ruleset.css')) from ...publish import publish_model publisher = 'karenc' publication_message = 'Added a ruleset' publish_model(cursor, revised, publisher, publication_message) cursor.connection.commit() cursor.execute("""\ SELECT module_ident FROM modules WHERE portal_type = 'Collection' ORDER BY module_ident DESC LIMIT 1""") module_ident = cursor.fetchone()[0] wait_for_module_state(module_ident) cursor.execute("""\ SELECT nodeid, is_collated FROM trees WHERE documentid = %s ORDER BY nodeid""", (module_ident,)) is_collated = [i[1] for i in cursor.fetchall()] self.assertEqual([False, True], is_collated) content = get_collated_content( revised[0][0].ident_hash, revised.ident_hash, cursor) self.assertIn('Ruleset applied', content[:]) cursor.execute("""\ SELECT state FROM post_publications WHERE module_ident = %s ORDER BY timestamp DESC""", (module_ident,)) self.assertEqual('Done/Success', cursor.fetchone()[0])
def test_revised_module_inserted(self, cursor): self.target() binder = use_cases.setup_COMPLEX_BOOK_ONE_in_archive(self, cursor) cursor.connection.commit() revised = deepcopy(use_cases.COMPLEX_BOOK_ONE) revised.id = binder.id revised.metadata['cnx-archive-uri'] = binder.id revised.metadata['version'] = '2.1' revised[0][0] = binder[0][0] revised[0][1] = binder[0][1] revised[1][0] = binder[1][0] revised[1][1] = binder[1][1] revised.resources.append( cnxepub.Resource('ruleset.css', io.BytesIO("""\ p.para { content: "Ruleset applied"; } /* copied from cnx-recipes books/rulesets/output/physics.css */ body > div[data-type="page"]:pass(20)::after, body > div[data-type="composite-page"]:pass(20)::after { content: pending(page-link); move-to: eob-toc; container: li; } body > div[data-type='chapter'] > h1[data-type='document-title']:pass(20) { copy-to: eoc-toc; } body > div[data-type='chapter'] > div[data-type="page"]:pass(20), body > div[data-type='chapter'] > div[data-type="composite-page"]:pass(20) { string-set: page-idi attr(id); } body > div[data-type='chapter'] > div[data-type="page"] > [data-type='document-title']:pass(20), body > div[data-type='chapter'] > div[data-type="composite-page"] > [data-type='document-title']:pass(20) { copy-to: page-title; } body > div[data-type='chapter'] > div[data-type="page"]:pass(20)::after, body > div[data-type='chapter'] > div[data-type="composite-page"]:pass(20)::after { content: pending(page-title); attr-href: "#" string(page-id); container: a; move-to: page-link; } body > div[data-type='chapter'] > div[data-type="page"]:pass(20)::after, body > div[data-type='chapter'] > div[data-type="composite-page"]:pass(20)::after { content: pending(page-link); move-to: eoc-toc-pages; container: li; } body > div[data-type='chapter']:pass(20)::after { content: pending(eoc-toc-pages); container: ol; class: chapter; move-to: eoc-toc; } body > div[data-type='chapter']:pass(20)::after { content: pending(eoc-toc); container: li; move-to: eob-toc; } body > div[data-type="unit"] > h1[data-type='document-title']:pass(20) { copy-to: eou-toc; } body > div[data-type="unit"] > div[data-type='chapter'] > h1[data-type='document-title']:pass(20) { copy-to: eoc-toc; } body > div[data-type="unit"] > div[data-type='chapter'] > div[data-type="page"] > [data-type='document-title']:pass(20), body > div[data-type="unit"] > div[data-type='chapter'] div[data-type="composite-page"] > [data-type='document-title']:pass(20) { copy-to: page-title; } body > div[data-type="unit"] > div[data-type='chapter'] > div[data-type="page"]:pass(20)::after, body > div[data-type="unit"] > div[data-type='chapter'] div[data-type="composite-page"]:pass(20)::after { content: pending(page-title); move-to: eoc-toc-pages; container: li; } body > div[data-type="unit"] > div[data-type='chapter']:pass(20)::after { content: pending(eoc-toc-pages); container: ol; class: chapter; move-to: eoc-toc; } body > div[data-type="unit"] > div[data-type='chapter']:pass(20)::after { content: pending(eoc-toc); container: li; move-to: eou-toc-chapters; } body > div[data-type="unit"]:pass(20)::after { content: pending(eou-toc-chapters); container: ol; class: unit; move-to: eou-toc; } body > div[data-type="unit"]:pass(20)::after { content: pending(eou-toc); container: li; move-to: eob-toc; } nav#toc:pass(30) { content: ''; } nav#toc:pass(30)::after { content: pending(eob-toc); container: ol; } """), 'text/css', filename='ruleset.css')) from ...publish import publish_model publisher = 'karenc' publication_message = 'Added a ruleset' publish_model(cursor, revised, publisher, publication_message) cursor.connection.commit() cursor.execute("""\ SELECT module_ident FROM modules WHERE portal_type = 'Collection' ORDER BY module_ident DESC LIMIT 1""") module_ident = cursor.fetchone()[0] wait_for_module_state(module_ident) cursor.execute( """\ SELECT nodeid, is_collated FROM trees WHERE documentid = %s ORDER BY nodeid""", (module_ident, )) is_collated = [i[1] for i in cursor.fetchall()] self.assertEqual([False, True], is_collated) content = get_collated_content(revised[0][0].ident_hash, revised.ident_hash, cursor) self.assertIn('Ruleset applied', content[:]) cursor.execute( """\ SELECT state FROM post_publications WHERE module_ident = %s ORDER BY timestamp DESC""", (module_ident, )) self.assertEqual('Done/Success', cursor.fetchone()[0])