mirror of
https://github.com/apache/superset.git
synced 2026-04-19 08:04:53 +00:00
Import CSV (#3643)
* add upload csv button to sources dropdown * upload csv to non-hive datasources * upload csv to hive datasource * update FAQ page * add tests * fix linting errors and merge conflicts * Update .travis.yml * Update tox.ini
This commit is contained in:
committed by
Maxime Beauchemin
parent
c5ddf57124
commit
268edcfedd
@@ -10,7 +10,9 @@ import doctest
|
||||
import io
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import random
|
||||
import string
|
||||
import unittest
|
||||
|
||||
from flask import escape
|
||||
@@ -789,6 +791,46 @@ class CoreTests(SupersetTestCase):
|
||||
{'name': ' NULL', 'sum__num': 0},
|
||||
)
|
||||
|
||||
def test_import_csv(self):
|
||||
self.login(username='admin')
|
||||
filename = 'testCSV.csv'
|
||||
table_name = ''.join(
|
||||
random.choice(string.ascii_uppercase) for _ in range(5))
|
||||
|
||||
test_file = open(filename, 'w+')
|
||||
test_file.write('a,b\n')
|
||||
test_file.write('john,1\n')
|
||||
test_file.write('paul,2\n')
|
||||
test_file.close()
|
||||
main_db_uri = db.session.query(
|
||||
models.Database.sqlalchemy_uri)\
|
||||
.filter_by(database_name='main').all()
|
||||
|
||||
test_file = open(filename, 'rb')
|
||||
form_data = {
|
||||
'csv_file': test_file,
|
||||
'sep': ',',
|
||||
'name': table_name,
|
||||
'con': main_db_uri[0][0],
|
||||
'if_exists': 'append',
|
||||
'index_label': 'test_label',
|
||||
'mangle_dupe_cols': False}
|
||||
|
||||
url = '/databaseview/list/'
|
||||
add_datasource_page = self.get_resp(url)
|
||||
assert 'Upload a CSV' in add_datasource_page
|
||||
|
||||
url = '/csvtodatabaseview/form'
|
||||
form_get = self.get_resp(url)
|
||||
assert 'CSV to Database configuration' in form_get
|
||||
|
||||
try:
|
||||
# ensure uploaded successfully
|
||||
form_post = self.get_resp(url, data=form_data)
|
||||
assert 'CSV file \"testCSV.csv\" uploaded to table' in form_post
|
||||
finally:
|
||||
os.remove(filename)
|
||||
|
||||
def test_dataframe_timezone(self):
|
||||
tz = psycopg2.tz.FixedOffsetTimezone(offset=60, name=None)
|
||||
data = [(datetime.datetime(2017, 11, 18, 21, 53, 0, 219225, tzinfo=tz),),
|
||||
|
||||
Reference in New Issue
Block a user