Skip to content

Commit

Permalink
[soc2010/query-refactor] Implement a few methods to the point of test…
Browse files Browse the repository at this point in the history
…s actually running under mongodb (all failing of course).

git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2010/query-refactor@13331 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
alex committed Jun 7, 2010
1 parent 0813aa4 commit 4c45bef
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 1 deletion.
35 changes: 34 additions & 1 deletion django/contrib/mongodb/base.py
@@ -1,5 +1,38 @@
from pymongo import Connection

from django.db.backends import BaseDatabaseWrapper
from django.db.backends.signals import connection_created
from django.contrib.mongodb.creation import DatabaseCreation


class DatabaseFeatures(object):
interprets_empty_strings_as_nulls = False


class DatabaseOperations(object):
def max_name_length(self):
return 254

def value_to_db_datetime(self, value):
return value


class DatabaseWrapper(BaseDatabaseWrapper):
pass
def __init__(self, *args, **kwargs):
super(DatabaseWrapper, self).__init__(*args, **kwargs)
self.features = DatabaseFeatures()
self.ops = DatabaseOperations()
self.creation = DatabaseCreation(self)
self._connection = None

@property
def connection(self):
if self._connection is None:
self._connection = Connection(self.settings_dict["HOST"],
self.settings_dict["PORT"] or None)
connection_created.send(sender=self.__class__)
return self._connection

def _rollback(self):
# TODO: ???
pass
20 changes: 20 additions & 0 deletions django/contrib/mongodb/creation.py
@@ -0,0 +1,20 @@
from django.db.backends.creation import TEST_DATABASE_PREFIX


class DatabaseCreation(object):
def __init__(self, connection):
self.connection = connection

def create_test_db(self, verbosity, autoclobber):
if self.connection.settings_dict['TEST_NAME']:
test_database_name = self.connection.settings_dict['TEST_NAME']
else:
test_database_name = TEST_DATABASE_PREFIX + self.connection.settings_dict['NAME']
self.connection.settings_dict["NAME"] = test_database_name
return test_database_name

def destroy_test_db(self, old_database_name, verbosity=1):
if verbosity >= 1:
print "Destroying test database '%s'..." % self.connection.alias
self.connection.connection.drop_database(self.connection.settings_dict["NAME"])
self.connection.settings_dict["NAME"] = old_database_name

0 comments on commit 4c45bef

Please sign in to comment.