python - Testing database in django other than django models -


i using mysql-server , mysqldb accessing database. have not used django models accessing database tables.

now problem comes while testing. django documentation talking testing using django models. while testing data, have insert data database using cursor.execute() function have read that. waste out time.

also testcase class run database query in transaction , doubt that, same mysql-server , myqldb?

i using mysqldb since faster django models. can tell me how can make testing simpler ? how can test database in django?

a better approach setting database overriding setup , teardown methods testcase out of django's way implementing setuptestdata instead.

from django.db import connections  class basictest(testcase):      @classmethod      def setuptestdata(cls):          alias = 'default'          cursor = connections[alias].cursor()          query = 'your query here'          cursor.execute(query) 

django drop test database on teardownclass.

for case don't have configuration entry in settings.py database, you'll need provide own setup , teardown testcase

@classmethod def setupclass(cls):     super(basictest, self).setupclass()     db = mysqldb.connect(host="localhost",user="root",passwd="toor")     cls.cursor = db.cursor()      query = 'create database if not exists test;'     cls.cursor.execute(query)      query = 'use test;'     cls.cursor.execute(query)  @classmethod def teardownclass(cls):     query = 'drop database test;'     cls.cursor.execute(query)     cls.cursor.close() 

with this, can still other data operations in setuptestdata cursor you'll use here cls.cursor.

references


Comments

Popular posts from this blog

python - Operations inside variables -

Generic Map Parameter java -

arrays - What causes a java.lang.ArrayIndexOutOfBoundsException and how do I prevent it? -