How to run tests in django using database with data?

左心房为你撑大大i 提交于 2020-01-02 03:48:07

问题


I want to test my views using data from postgres localhost database (with already loaded data). I'm using tox with pytest and pytest-django.

My question: How to set up / connect to local database to get all the data model schema and data itself? Or maybe it is better to use factory_boy? Or to load whole data from .sql script (if yes, how)?

Example of my test:

def test_foo_view(custom_client_login):
    response = custom_client_login.get('/foo/bar/123/')

    assert response.status_code == 200
    assert 'Transaction no. 123' in response.content

But instead of getting status code 200 I get 404, which points that no data is in test database. But when I lunch runserver and go to that view ('localhost:8000/foo/bar/123/') I will get status 200 and html webpage with some data.

Please help!


I'm using:

  • Django==1.7.11
  • pytest==3.0.6
  • pytest-django==3.1.2
  • tox==2.6.0

回答1:


Just found a way! It was simpler then I thought! Without writing any custom TestRunners etc.

The answer is in pytest-django docs in Chapter 5 -> Examples -> Use a read only database.

Check out other examples, which are really handy in such situations.

Thanks!



来源:https://stackoverflow.com/questions/42559151/how-to-run-tests-in-django-using-database-with-data

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!