Projet

Général

Profil

0002-data-add-some-performances-tests-51472.patch

Lauréline Guérin, 01 mars 2021 11:22

Télécharger (4,87 ko)

Voir les différences:

Subject: [PATCH 2/7] data: add some performances tests (#51472)

 tests/test_manager.py | 55 +++++++++++++++++++++++++------------------
 1 file changed, 32 insertions(+), 23 deletions(-)
tests/test_manager.py
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
-