示例#1
0
class print_all_queries(object):
    def __init__(self, conn=None):
        if conn is None:
            self.conn = connection
        else:
            self.conn = conn

    def __enter__(self):
        self.capturer = CaptureQueriesContext(self.conn)
        self.capturer.__enter__()
        return self

    def __exit__(self, a, b, c):
        self.capturer.__exit__(a, b, c)
        for q in self.capturer.captured_queries:
            print(q['sql'])
示例#2
0
class print_all_queries(object):
    def __init__(self, conn=None):
        if conn is None:
            self.conn = connection
        else:
            self.conn = conn

    def __enter__(self):
        self.capturer = CaptureQueriesContext(self.conn)
        self.capturer.__enter__()
        return self

    def __exit__(self, a, b, c):
        self.capturer.__exit__(a, b, c)
        for q in self.capturer.captured_queries:
            print(q['sql'])
示例#3
0
class CaptureLastQuery:
    def __init__(self, conn=None):
        if conn is None:  # pragma: no branch
            conn = connection
        self.conn = conn

    def __enter__(self):
        self.capturer = CaptureQueriesContext(self.conn)
        self.capturer.__enter__()
        return self

    def __exit__(self, a, b, c):
        self.capturer.__exit__(a, b, c)

    @property
    def query(self):
        return self.capturer.captured_queries[-1]["sql"]
示例#4
0
class CaptureLastQuery(object):
    def __init__(self, conn=None):
        if conn is None:
            self.conn = connection
        else:
            self.conn = conn

    def __enter__(self):
        self.capturer = CaptureQueriesContext(self.conn)
        self.capturer.__enter__()
        return self

    def __exit__(self, a, b, c):
        self.capturer.__exit__(a, b, c)

    @property
    def query(self):
        return self.capturer.captured_queries[-1]['sql']
示例#5
0
class CaptureLastQuery(object):
    def __init__(self, conn=None):
        if conn is None:
            self.conn = connection
        else:
            self.conn = conn

    def __enter__(self):
        self.capturer = CaptureQueriesContext(self.conn)
        self.capturer.__enter__()
        return self

    def __exit__(self, a, b, c):
        self.capturer.__exit__(a, b, c)

    @property
    def query(self):
        return self.capturer.captured_queries[-1]['sql']
示例#6
0
class SphinxModelTestCaseBase(TransactionTestCase):
    _id = 0

    model = models.TestModel

    def _fixture_teardown(self):
        # Prevent SHOW FULL TABLES call
        pass

    def truncate_model(self):
        c = connections[settings.SPHINX_DATABASE_NAME].cursor()
        c.execute("TRUNCATE RTINDEX %s" % self.model._meta.db_table)
        c.close()

    def setUp(self):
        c = connections[settings.SPHINX_DATABASE_NAME]
        self.no_string_compare = c.mysql_version < (2, 2, 7)
        self.truncate_model()
        self.now = datetime.now().replace(microsecond=0)
        self.defaults = self.get_model_defaults()
        self.spx_queries = CaptureQueriesContext(
            connections[settings.SPHINX_DATABASE_NAME])
        self.spx_queries.__enter__()
        self.obj = self.model.objects.create(**self.defaults)

    def get_model_defaults(self):
        return {
            'id': self.newid(),
            'sphinx_field': "hello sphinx field",
            'attr_uint': 100500,
            'attr_bool': True,
            'attr_bigint': 2 ** 33,
            'attr_float': 1.2345,
            'attr_multi': [1, 2, 3],
            'attr_multi_64': [2 ** 33, 2 ** 34],
            'attr_timestamp': self.now,
            'attr_string': "hello sphinx attr",
            "attr_json": {"json": "test"},
        }

    @classmethod
    def newid(cls):
        cls._id += 1
        return cls._id

    def reload_object(self, obj):
        return obj._meta.model.objects.get(pk=obj.pk)

    def assertObjectEqualsToDefaults(self, other, defaults=None):
        defaults = defaults or self.defaults
        result = {k: getattr(other, k) for k in defaults.keys()
                  if k != 'sphinx_field'}
        for k in defaults.keys():
            if k == 'sphinx_field':
                continue
            self.assertEqual(result[k], defaults[k])

    def tearDown(self):
        self.spx_queries.__exit__(*sys.exc_info())
        for query in self.spx_queries.captured_queries:
            print(query['sql'])
示例#7
0
class SphinxModelTestCaseBase(TransactionTestCase):
    _id = 0

    model = models.TestModel

    def _fixture_teardown(self):
        # Prevent SHOW FULL TABLES call
        pass

    def truncate_model(self):
        c = connections[settings.SPHINX_DATABASE_NAME].cursor()
        c.execute("TRUNCATE RTINDEX %s" % self.model._meta.db_table)
        c.close()

    def setUp(self):
        c = connections[settings.SPHINX_DATABASE_NAME]
        self.no_string_compare = c.mysql_version < (2, 2, 7)
        self.truncate_model()
        self.now = datetime.now().replace(microsecond=0)
        self.defaults = self.get_model_defaults()
        self.spx_queries = CaptureQueriesContext(
            connections[settings.SPHINX_DATABASE_NAME])
        self.spx_queries.__enter__()
        self.obj = self.model.objects.create(**self.defaults)

    def get_model_defaults(self):
        return {
            'id': self.newid(),
            'sphinx_field': "hello sphinx field",
            'attr_uint': 100500,
            'attr_bool': True,
            'attr_bigint': 2 ** 33,
            'attr_float': 1.2345,
            'attr_multi': [1, 2, 3],
            'attr_multi_64': [2 ** 33, 2 ** 34],
            'attr_timestamp': self.now,
            'attr_string': "hello sphinx attr",
            "attr_json": {"json": "test"},
        }

    @classmethod
    def newid(cls):
        cls._id += 1
        return cls._id

    def reload_object(self, obj):
        return obj._meta.model.objects.get(pk=obj.pk)

    def assertObjectEqualsToDefaults(self, other, defaults=None):
        defaults = defaults or self.defaults
        result = {k: getattr(other, k) for k in defaults.keys()
                  if k != 'sphinx_field'}
        for k in defaults.keys():
            if k == 'sphinx_field':
                continue
            self.assertEqual(result[k], defaults[k])

    def tearDown(self):
        self.spx_queries.__exit__(*sys.exc_info())
        for query in self.spx_queries.captured_queries:
            print(query['sql'])