On Fri, Jul 5, 2013 at 6:38 AM, Ramiro Morales <[email protected]> wrote: > On Thu, Jul 4, 2013 at 8:42 PM, Larry Martell <[email protected]> wrote: >> >> I'm just getting involved with setting up testing using the django >> testing facilities, and I have a couple of questions. >> >> If I do this from the django shell: >> >> $ python manage.py shell >> Python 2.7.2 (default, Oct 11 2012, 20:14:37) >> [GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on >> darwin >> Type "help", "copyright", "credits" or "license" for more information. >> (InteractiveConsole) >> >>> from django.test.utils import setup_test_environment >> >>> setup_test_environment() >> >>> >> >> Should I expect to see that the test db was created? Because I do not >> see it. (The docs say "This convenience method sets up the test >> database"). > > It seems you are using Django <= 1.4. the docs were wrong n these versions. > setup_test_environment() doesn't actually creates the test DB. > > That section of the docs were [1]updated in >= 1.5 to point to the > .setup_databases() method the relevant TestRunner class which is > the one in charge of the DB creation. > >> But then I read: >> >> create_test_db: Creates a new test database and runs syncdb against >> it. So then I thought maybe I have to call that. But I got: >> >> >>> create_test_db() >> Traceback (most recent call last): >> File "<console>", line 1, in <module> >> NameError: name 'create_test_db' is not defined >> > > That create_test_db() is a low-level DB backend method that provides > the low-level support > to this functionality. Its easy to miss but thee is a > > "The creation module of the database backend (connection.creation) > also provides some utilities that can be useful during testing." > > paragraph above its description.
Thanks much for the clarification. >> Concerning fixture, I read in the docs where it says you can set up >> fixture files for initialing the test db. What will prevent those test >> fixtures from getting loaded when I do a syncdb of my 'real' database? > > Documentation is clear in this case: > > - The only DB fixtures leaded automatically on syncdb are the ones > named 'initial_data' Ah, yes. Thanks again! > - You should explicitly specify the names of the DB fixtures you want > loaded for a given test case. > > So there are two safety nets there. You need to break them explicitly > to get to that potentially disastrous scenario. -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/django-users. For more options, visit https://groups.google.com/groups/opt_out.

