mirror of
				https://github.com/carrotquest/django-clickhouse.git
				synced 2025-10-25 05:01:15 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			67 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from unittest import TestCase
 | |
| 
 | |
| import datetime
 | |
| 
 | |
| from django_clickhouse.database import connections
 | |
| from django_clickhouse.migrations import migrate_app
 | |
| from django_clickhouse.query import QuerySet
 | |
| from tests.clickhouse_models import ClickHouseTestModel
 | |
| 
 | |
| 
 | |
| class TestQuerySet(TestCase):
 | |
|     def _recreate_db(self, db_alias):
 | |
|         db = connections[db_alias]
 | |
|         db.drop_database()
 | |
|         db.db_exists = False
 | |
|         db.create_database()
 | |
| 
 | |
|         migrate_app('tests', db_alias)
 | |
|         return db
 | |
| 
 | |
|     def setUp(self):
 | |
|         self.db = self._recreate_db('default')
 | |
|         self._recreate_db('secondary')
 | |
| 
 | |
|     def test_all(self):
 | |
|         self.db.insert([ClickHouseTestModel(id=i, created_date=datetime.date.today(), value=i) for i in range(1, 4)])
 | |
|         qs = ClickHouseTestModel.objects.all()
 | |
| 
 | |
|         self.assertIsInstance(qs, QuerySet)
 | |
|         self.assertEqual(3, qs.count())
 | |
| 
 | |
|     def test_create(self):
 | |
|         ClickHouseTestModel.objects.create(id=1, created_date=datetime.date.today(), value=2)
 | |
|         res = list(self.db.select('SELECT * FROM $table', model_class=ClickHouseTestModel))
 | |
|         self.assertEqual(1, len(res))
 | |
| 
 | |
|         self.assertEqual(1, res[0].id)
 | |
|         self.assertEqual(datetime.date.today(), res[0].created_date)
 | |
|         self.assertEqual(2, res[0].value)
 | |
| 
 | |
|     def test_bulk_create(self):
 | |
|         ClickHouseTestModel.objects.bulk_create([
 | |
|             ClickHouseTestModel(id=i, created_date=datetime.date.today(), value=i) for i in range(1, 4)
 | |
|         ])
 | |
|         res = list(self.db.select('SELECT * FROM $table ORDER BY id', model_class=ClickHouseTestModel))
 | |
|         self.assertEqual(3, len(res))
 | |
| 
 | |
|         for i in range(0, 3):
 | |
|             self.assertEqual(i + 1, res[i].id)
 | |
|             self.assertEqual(datetime.date.today(), res[0].created_date)
 | |
|             self.assertEqual(i + 1, res[i].value)
 | |
| 
 | |
|     def test_using(self):
 | |
|         self.db.insert(
 | |
|             [ClickHouseTestModel(id=i, created_date=datetime.date.today(), value=i) for i in range(1, 4)]
 | |
|         )
 | |
|         connections['secondary'].insert([
 | |
|             ClickHouseTestModel(id=i, created_date=datetime.date.today(), value=i) for i in range(10, 12)
 | |
|         ])
 | |
| 
 | |
|         self.assertEqual(3, ClickHouseTestModel.objects.count())
 | |
|         self.assertEqual(3, ClickHouseTestModel.objects_in(self.db).count())
 | |
|         self.assertEqual(2, ClickHouseTestModel.objects_in(self.db).using('secondary').count())
 | |
| 
 | |
|         self.assertEqual(2, ClickHouseTestModel.objects.using('secondary').count())
 | |
|         self.assertEqual(3, ClickHouseTestModel.objects.using('default').count())
 |