Procházet zdrojové kódy

adding unit test for phoenix sql

ayush.goyal před 4 roky
rodič
revize
6b8bfae966

+ 51 - 0
desktop/libs/indexer/src/indexer/indexers/sql_tests.py

@@ -869,3 +869,54 @@ INSERT INTO default.test1 VALUES ('NY', 'New York', '8143197'), ('CA', 'Los Ange
 ('TX', 'Dallas', '1213825'), ('CA', 'San Jose', '912332');'''
 
     assert_equal(statement, sql)
+
+
+def test_create_table_from_local_phoenix():
+  with patch('indexer.indexers.sql.get_interpreter') as get_interpreter:
+    get_interpreter.return_value = {'Name': 'Phoenix', 'dialect': 'phoenix'}
+    source = {
+      'path': '/apps/beeswax/data/tables/us_population.csv',
+      'sourceType': 'phoenix',
+      'format': {'hasHeader': False}
+    }
+    destination = {
+      'name': 'default.test1',
+      'columns': [
+        {'name': 'field_1', 'type': 'string'},
+        {'name': 'field_2', 'type': 'string'},
+        {'name': 'field_3', 'type': 'bigint'},
+      ],
+      'sourceType': 'phoenix',
+      'indexerPrimaryKey': ['field_3']
+    }
+    sql = SQLIndexer(user=Mock(), fs=Mock()).create_table_from_local_file(source, destination).get_str()
+
+    statement = '''USE default;
+
+CREATE TABLE IF NOT EXISTS default.test1 (
+  field_1 CHAR(255),
+  field_2 CHAR(255),
+  field_3 bigint
+CONSTRAINT my_pk PRIMARY KEY (field_3));
+
+UPSERT INTO default.test1 VALUES ('NY', 'New York', 8143197);
+            
+UPSERT INTO default.test1 VALUES ('CA', 'Los Angeles', 3844829);
+            
+UPSERT INTO default.test1 VALUES ('IL', 'Chicago', 2842518);
+            
+UPSERT INTO default.test1 VALUES ('TX', 'Houston', 2016582);
+            
+UPSERT INTO default.test1 VALUES ('PA', 'Philadelphia', 1463281);
+            
+UPSERT INTO default.test1 VALUES ('AZ', 'Phoenix', 1461575);
+            
+UPSERT INTO default.test1 VALUES ('TX', 'San Antonio', 1256509);
+            
+UPSERT INTO default.test1 VALUES ('CA', 'San Diego', 1255540);
+            
+UPSERT INTO default.test1 VALUES ('TX', 'Dallas', 1213825);
+            
+UPSERT INTO default.test1 VALUES ('CA', 'San Jose', 912332);'''
+
+    assert_equal(statement, sql)