From 77b33c0ed4b3147b0c7e68aeb9e7694735b87004 Mon Sep 17 00:00:00 2001 From: emakarov Date: Wed, 8 Feb 2017 23:21:48 +0300 Subject: [PATCH] test added. engine sql query fix to support special characters --- src/infi/clickhouse_orm/engines.py | 2 +- tests/test_database.py | 20 +++++++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/infi/clickhouse_orm/engines.py b/src/infi/clickhouse_orm/engines.py index 47373e5..7c9a94c 100644 --- a/src/infi/clickhouse_orm/engines.py +++ b/src/infi/clickhouse_orm/engines.py @@ -83,7 +83,7 @@ class Buffer(Engine): def create_table_sql(self, db_name): # Overriden create_table_sql example: #sql = 'ENGINE = Buffer(merge, hits, 16, 10, 100, 10000, 1000000, 10000000, 100000000)' - sql = 'ENGINE = Buffer(%s, %s, %d, %d, %d, %d, %d, %d, %d)' % ( + sql = 'ENGINE = Buffer(`%s`, `%s`, %d, %d, %d, %d, %d, %d, %d)' % ( db_name, self.main_model.table_name(), self.num_layers, self.min_time, self.max_time, self.min_rows, self.max_rows, self.min_bytes, self.max_bytes diff --git a/tests/test_database.py b/tests/test_database.py index 1e62472..973b15b 100644 --- a/tests/test_database.py +++ b/tests/test_database.py @@ -3,7 +3,7 @@ import unittest from infi.clickhouse_orm.database import Database, DatabaseException -from infi.clickhouse_orm.models import Model +from infi.clickhouse_orm.models import Model, BufferModel from infi.clickhouse_orm.fields import * from infi.clickhouse_orm.engines import * @@ -16,8 +16,10 @@ class DatabaseTestCase(unittest.TestCase): def setUp(self): self.database = Database('test-db') self.database.create_table(Person) + self.database.create_table(PersonBuffer) def tearDown(self): + self.database.drop_table(PersonBuffer) self.database.drop_table(Person) self.database.drop_database() @@ -25,6 +27,10 @@ class DatabaseTestCase(unittest.TestCase): self.database.insert(data) self.assertEquals(count, self.database.count(Person)) + def _insert_and_check_buffer(self, data, count): + self.database.insert(data) + self.assertEquals(count, self.database.count(PersonBuffer)) + def test_insert__generator(self): self._insert_and_check(self._sample_data(), len(data)) @@ -129,10 +135,17 @@ class DatabaseTestCase(unittest.TestCase): self.database.drop_database() self.database = orig_database + def test_insert_buffer(self): + self._insert_and_check_buffer(self._sample_buffer_data(), len(data)) + def _sample_data(self): for entry in data: yield Person(**entry) + def _sample_buffer_data(self): + for entry in data: + yield PersonBuffer(**entry) + class Person(Model): @@ -144,6 +157,11 @@ class Person(Model): engine = MergeTree('birthday', ('first_name', 'last_name', 'birthday')) +class PersonBuffer(BufferModel, Person): + + engine = Buffer(Person) + + data = [ {"first_name": "Abdul", "last_name": "Hester", "birthday": "1970-12-02", "height": "1.63"}, {"first_name": "Adam", "last_name": "Goodman", "birthday": "1986-01-07", "height": "1.74"},