807 |
807 |
|
808 |
808 |
|
809 |
809 |
def test_site_export_import_json(app, admin_user):
|
810 |
|
Page.objects.all().delete()
|
811 |
|
page1 = Page(title='One', slug='one', template_name='standard')
|
812 |
|
page1.save()
|
813 |
|
page2 = Page(title='Two', slug='two', parent=page1, template_name='standard')
|
814 |
|
page2.save()
|
815 |
|
page3 = Page(title='Three', slug='three', parent=page2, template_name='standard')
|
816 |
|
page3.save()
|
817 |
|
page4 = Page(title='Four', slug='four', parent=page1, template_name='standard')
|
818 |
|
page4.save()
|
819 |
|
|
820 |
|
cell = TextCell(page=page1, placeholder='content', text='Foobar', order=0)
|
821 |
|
cell.save()
|
822 |
|
|
823 |
|
cell = LinkCell(page=page1, placeholder='content', link_page=page2, order=0)
|
824 |
|
cell.save()
|
|
810 |
page1 = Page.objects.create(title='One', slug='one', template_name='standard')
|
|
811 |
page2 = Page.objects.create(title='Two', slug='two', parent=page1, template_name='standard')
|
|
812 |
page3 = Page.objects.create(title='Three', slug='three', parent=page2, template_name='standard')
|
|
813 |
page4 = Page.objects.create(title='Four', slug='four', parent=page1, template_name='standard')
|
825 |
814 |
|
826 |
|
cell = LinkCell(page=page2, placeholder='content', link_page=page1, order=0)
|
827 |
|
cell.save()
|
|
815 |
TextCell.objects.create(page=page1, placeholder='content', text='Foobar', order=0)
|
|
816 |
LinkCell.objects.create(page=page1, placeholder='content', link_page=page2, order=0)
|
|
817 |
LinkCell.objects.create(page=page2, placeholder='content', link_page=page1, order=0)
|
|
818 |
TextCell.objects.create(page=page3, placeholder='content', text='Foobar', order=0)
|
|
819 |
TextCell.objects.create(page=page3, placeholder='content', text='Foobar', order=0)
|
|
820 |
TextCell.objects.create(page=page4, placeholder='content', text='Foobar', order=0)
|
|
821 |
TextCell.objects.create(page=page4, placeholder='content', text='Foobar', order=0)
|
828 |
822 |
|
829 |
823 |
app = login(app)
|
830 |
824 |
resp = app.get('/manage/')
|
... | ... | |
833 |
827 |
assert resp.headers['content-type'] == 'application/json'
|
834 |
828 |
site_export = resp.body
|
835 |
829 |
|
|
830 |
resp = app.get('/manage/')
|
|
831 |
resp = resp.click('Import Site')
|
|
832 |
resp.form['site_file'] = Upload('site-export.json', site_export, 'application/json')
|
|
833 |
with CaptureQueriesContext(connection) as ctx:
|
|
834 |
resp = resp.form.submit()
|
|
835 |
assert len(ctx.captured_queries) in [1162, 1163]
|
|
836 |
|
836 |
837 |
Page.objects.all().delete()
|
837 |
838 |
assert LinkCell.objects.count() == 0
|
838 |
|
app = login(app)
|
839 |
839 |
resp = app.get('/manage/')
|
840 |
840 |
resp = resp.click('Import Site')
|
841 |
841 |
resp.form['site_file'] = Upload('site-export.json', site_export, 'application/json')
|
842 |
|
resp = resp.form.submit()
|
|
842 |
with CaptureQueriesContext(connection) as ctx:
|
|
843 |
resp = resp.form.submit()
|
|
844 |
assert len(ctx.captured_queries) == 849
|
|
845 |
assert set(Page.objects.get(slug='one').related_cells['cell_types']) == set(
|
|
846 |
['data_textcell', 'data_linkcell']
|
|
847 |
)
|
843 |
848 |
assert Page.objects.count() == 4
|
844 |
849 |
assert LinkCell.objects.count() == 2
|
845 |
850 |
assert LinkCell.objects.get(page__slug='one').link_page.slug == 'two'
|
... | ... | |
2121 |
2126 |
< resp.text.index('changed title')
|
2122 |
2127 |
)
|
2123 |
2128 |
|
2124 |
|
resp2 = resp.click('view', index=1)
|
|
2129 |
with CaptureQueriesContext(connection) as ctx:
|
|
2130 |
resp2 = resp.click('view', index=1)
|
|
2131 |
assert len(ctx.captured_queries) == 365
|
|
2132 |
assert Page.snapshots.latest('pk').related_cells == {'cell_types': ['data_textcell']}
|
2125 |
2133 |
assert resp2.text.index('Hello world') < resp2.text.index('Foobar3')
|
2126 |
2134 |
|
2127 |
2135 |
resp2 = resp.click('view', index=0)
|
... | ... | |
2129 |
2137 |
|
2130 |
2138 |
resp2 = resp.click('view', index=2)
|
2131 |
2139 |
assert 'Foobar1' in resp2.text
|
2132 |
|
assert not 'Hello world' in resp2.text
|
|
2140 |
assert 'Hello world' not in resp2.text
|
2133 |
2141 |
|
2134 |
2142 |
assert Page.objects.all().count() == 1
|
2135 |
2143 |
assert PageSnapshot.objects.filter(page=page)[0].user.username == 'admin'
|
... | ... | |
2179 |
2187 |
# restore a snapshot
|
2180 |
2188 |
app = login(app)
|
2181 |
2189 |
resp = resp.click('restore', index=6)
|
2182 |
|
resp = resp.form.submit()
|
2183 |
|
resp = resp.follow()
|
|
2190 |
with CaptureQueriesContext(connection) as ctx:
|
|
2191 |
resp = resp.form.submit().follow()
|
|
2192 |
assert len(ctx.captured_queries) == 587
|
2184 |
2193 |
|
2185 |
2194 |
resp2 = resp.click('See online')
|
2186 |
2195 |
assert resp2.text.index('Foobar1') < resp2.text.index('Foobar2') < resp2.text.index('Foobar3')
|
2187 |
|
-
|