Added schema option to define in the integration tests

This commit is contained in:
Mario de Frutos 2016-11-07 10:33:15 +01:00
parent 352d4217bc
commit 22fdbd0f4e
12 changed files with 46 additions and 26 deletions

View File

@ -9,11 +9,11 @@ import time
class ImportHelper: class ImportHelper:
@classmethod @classmethod
def import_test_dataset(cls, username, api_key, host): def import_test_dataset(cls, username, api_key, host, schema):
requests.packages.urllib3.disable_warnings() requests.packages.urllib3.disable_warnings()
url = "https://{0}.{1}/api/v1/imports/"\ url = "{0}://{1}.{2}/api/v1/imports/"\
"?type_guessing=false&privacy=public&api_key={2}".format( "?type_guessing=false&privacy=public&api_key={3}".format(
username, host, api_key) schema, username, host, api_key)
dataset = { dataset = {
'file': open('fixtures/geocoder_api_test_dataset.csv', 'rb')} 'file': open('fixtures/geocoder_api_test_dataset.csv', 'rb')}
response = requests.post(url, files=dataset) response = requests.post(url, files=dataset)
@ -27,7 +27,8 @@ class ImportHelper:
username, username,
host, host,
api_key, api_key,
response_json['item_queue_id'] response_json['item_queue_id'],
schema
) )
if table_name: if table_name:
return table_name return table_name
@ -35,10 +36,10 @@ class ImportHelper:
time.sleep(5) time.sleep(5)
@classmethod @classmethod
def get_imported_table_name(cls, username, host, api_key, import_id): def get_imported_table_name(cls, username, host, api_key, import_id, schema):
requests.packages.urllib3.disable_warnings() requests.packages.urllib3.disable_warnings()
import_url = "https://{0}.{1}/api/v1/imports/{2}?api_key={3}".format( import_url = "{0}://{1}.{2}/api/v1/imports/{3}?api_key={4}".format(
username, host, import_id, api_key) schema, username, host, import_id, api_key)
import_data_response = requests.get(import_url) import_data_response = requests.get(import_url)
if import_data_response.status_code != 200: if import_data_response.status_code != 200:
print "Error getting the table name from " \ print "Error getting the table name from " \
@ -49,10 +50,10 @@ class ImportHelper:
return import_data_json['table_name'] return import_data_json['table_name']
@classmethod @classmethod
def clean_test_dataset(cls, username, api_key, table_name, host): def clean_test_dataset(cls, username, api_key, table_name, host, schema):
requests.packages.urllib3.disable_warnings() requests.packages.urllib3.disable_warnings()
url = "https://{0}.{1}/api/v2/sql?q=drop table {2}&api_key={3}".format( url = "{0}://{1}.{2}/api/v2/sql?q=drop table {3}&api_key={4}".format(
username, host, table_name, api_key schema, username, host, table_name, api_key
) )
response = requests.get(url) response = requests.get(url)
if response.status_code != 200: if response.status_code != 200:

View File

@ -10,11 +10,13 @@ class IntegrationTestHelper:
username = os.environ["GEOCODER_API_TEST_USERNAME"] username = os.environ["GEOCODER_API_TEST_USERNAME"]
api_key = os.environ["GEOCODER_API_TEST_API_KEY"] api_key = os.environ["GEOCODER_API_TEST_API_KEY"]
host = os.environ["GEOCODER_API_TEST_HOST"] host = os.environ["GEOCODER_API_TEST_HOST"]
schema = os.environ["GEOCODER_API_TEST_SCHEMA"]
table_name = os.environ["GEOCODER_API_TEST_TABLE_NAME"] table_name = os.environ["GEOCODER_API_TEST_TABLE_NAME"]
return { return {
"username": username, "username": username,
"api_key": api_key, "api_key": api_key,
"schema": schema,
"host": host, "host": host,
"table_name": table_name "table_name": table_name
} }

View File

@ -8,7 +8,8 @@ class TestAdmin0Functions(TestCase):
def setUp(self): def setUp(self):
self.env_variables = IntegrationTestHelper.get_environment_variables() self.env_variables = IntegrationTestHelper.get_environment_variables()
self.sql_api_url = "https://{0}.{1}/api/v1/sql".format( self.sql_api_url = "{0}://{1}.{2}/api/v1/sql".format(
self.env_variables['schema'],
self.env_variables['username'], self.env_variables['username'],
self.env_variables['host'], self.env_variables['host'],
self.env_variables['api_key'] self.env_variables['api_key']

View File

@ -8,7 +8,8 @@ class TestAdmin1Functions(TestCase):
def setUp(self): def setUp(self):
self.env_variables = IntegrationTestHelper.get_environment_variables() self.env_variables = IntegrationTestHelper.get_environment_variables()
self.sql_api_url = "https://{0}.{1}/api/v1/sql".format( self.sql_api_url = "{0}://{1}.{2}/api/v1/sql".format(
self.env_variables['schema'],
self.env_variables['username'], self.env_variables['username'],
self.env_variables['host'], self.env_variables['host'],
self.env_variables['api_key'] self.env_variables['api_key']

View File

@ -8,7 +8,8 @@ class TestDataObservatoryFunctions(TestCase):
def setUp(self): def setUp(self):
self.env_variables = IntegrationTestHelper.get_environment_variables() self.env_variables = IntegrationTestHelper.get_environment_variables()
self.sql_api_url = "https://{0}.{1}/api/v1/sql".format( self.sql_api_url = "{0}://{1}.{2}/api/v1/sql".format(
self.env_variables['schema'],
self.env_variables['username'], self.env_variables['username'],
self.env_variables['host'], self.env_variables['host'],
self.env_variables['api_key'] self.env_variables['api_key']

View File

@ -8,7 +8,8 @@ class TestPostalcodeFunctions(TestCase):
def setUp(self): def setUp(self):
self.env_variables = IntegrationTestHelper.get_environment_variables() self.env_variables = IntegrationTestHelper.get_environment_variables()
self.sql_api_url = "https://{0}.{1}/api/v1/sql".format( self.sql_api_url = "{0}://{1}.{2}/api/v1/sql".format(
self.env_variables['schema'],
self.env_variables['username'], self.env_variables['username'],
self.env_variables['host'], self.env_variables['host'],
self.env_variables['api_key'] self.env_variables['api_key']

View File

@ -8,7 +8,8 @@ class TestIsolinesFunctions(TestCase):
def setUp(self): def setUp(self):
self.env_variables = IntegrationTestHelper.get_environment_variables() self.env_variables = IntegrationTestHelper.get_environment_variables()
self.sql_api_url = "https://{0}.{1}/api/v1/sql".format( self.sql_api_url = "{0}://{1}.{2}/api/v1/sql".format(
self.env_variables['schema'],
self.env_variables['username'], self.env_variables['username'],
self.env_variables['host'], self.env_variables['host'],
self.env_variables['api_key'] self.env_variables['api_key']

View File

@ -8,7 +8,8 @@ class TestNameplaceFunctions(TestCase):
def setUp(self): def setUp(self):
self.env_variables = IntegrationTestHelper.get_environment_variables() self.env_variables = IntegrationTestHelper.get_environment_variables()
self.sql_api_url = "https://{0}.{1}/api/v1/sql".format( self.sql_api_url = "{0}://{1}.{2}/api/v1/sql".format(
self.env_variables['schema'],
self.env_variables['username'], self.env_variables['username'],
self.env_variables['host'], self.env_variables['host'],
self.env_variables['api_key'] self.env_variables['api_key']

View File

@ -8,7 +8,8 @@ class TestPostalcodeFunctions(TestCase):
def setUp(self): def setUp(self):
self.env_variables = IntegrationTestHelper.get_environment_variables() self.env_variables = IntegrationTestHelper.get_environment_variables()
self.sql_api_url = "https://{0}.{1}/api/v1/sql".format( self.sql_api_url = "{0}://{1}.{2}/api/v1/sql".format(
self.env_variables['schema'],
self.env_variables['username'], self.env_variables['username'],
self.env_variables['host'], self.env_variables['host'],
self.env_variables['api_key'] self.env_variables['api_key']

View File

@ -8,7 +8,8 @@ class TestRoutingFunctions(TestCase):
def setUp(self): def setUp(self):
self.env_variables = IntegrationTestHelper.get_environment_variables() self.env_variables = IntegrationTestHelper.get_environment_variables()
self.sql_api_url = "https://{0}.{1}/api/v1/sql".format( self.sql_api_url = "{0}://{1}.{2}/api/v1/sql".format(
self.env_variables['schema'],
self.env_variables['username'], self.env_variables['username'],
self.env_variables['host'], self.env_variables['host'],
self.env_variables['api_key'] self.env_variables['api_key']

View File

@ -8,7 +8,8 @@ class TestStreetFunctions(TestCase):
def setUp(self): def setUp(self):
self.env_variables = IntegrationTestHelper.get_environment_variables() self.env_variables = IntegrationTestHelper.get_environment_variables()
self.sql_api_url = "https://{0}.{1}/api/v1/sql".format( self.sql_api_url = "{0}://{1}.{2}/api/v1/sql".format(
self.env_variables['schema'],
self.env_variables['username'], self.env_variables['username'],
self.env_variables['host'], self.env_variables['host'],
self.env_variables['api_key'] self.env_variables['api_key']

View File

@ -8,12 +8,13 @@ from helpers.import_helper import ImportHelper
def main(): def main():
opts, args = getopt.getopt(sys.argv[1:], "h", ["help", "host="]) opts, args = getopt.getopt(sys.argv[1:], "h", ["help", "host=", "schema="])
if len(args) < 2: if len(args) < 2:
usage() usage()
sys.exit() sys.exit()
schema = "https"
host = "cartodb.com" host = "cartodb.com"
username = args[0] username = args[0]
api_key = args[1] api_key = args[1]
@ -24,26 +25,31 @@ def main():
sys.exit() sys.exit()
elif o in ("--host"): elif o in ("--host"):
host = opts[0][1] host = opts[0][1]
elif o in ("--schema"):
schema = opts[1][1]
else: else:
assert False, "unhandled option" assert False, "unhandled option"
try: try:
table_name = ImportHelper.import_test_dataset(username, api_key, host) table_name = ImportHelper.import_test_dataset(username, api_key, host,
set_environment_variables(username, api_key, table_name, host) schema)
set_environment_variables(username, api_key, table_name, host, schema)
execute_tests() execute_tests()
except Exception as e: except Exception as e:
print e.message print e.message
sys.exit(1) sys.exit(1)
finally: finally:
clean_environment_variables() clean_environment_variables()
ImportHelper.clean_test_dataset(username, api_key, table_name, host) ImportHelper.clean_test_dataset(username, api_key, table_name, host,
schema)
def usage(): def usage():
print """Usage: run_tests.py [options] username api_key print """Usage: run_tests.py [options] username api_key
Options: Options:
-h: Show this help -h: Show this help
--host: take that host as base (by default is cartodb.com)""" --host: take that host as base (by default is cartodb.com)
--schema: define the url schema [http/https] (by default https)"""
def execute_tests(): def execute_tests():
@ -59,11 +65,12 @@ def execute_tests():
sys.exit(1) sys.exit(1)
def set_environment_variables(username, api_key, table_name, host): def set_environment_variables(username, api_key, table_name, host, schema):
os.environ["GEOCODER_API_TEST_USERNAME"] = username os.environ["GEOCODER_API_TEST_USERNAME"] = username
os.environ["GEOCODER_API_TEST_API_KEY"] = api_key os.environ["GEOCODER_API_TEST_API_KEY"] = api_key
os.environ["GEOCODER_API_TEST_TABLE_NAME"] = table_name os.environ["GEOCODER_API_TEST_TABLE_NAME"] = table_name
os.environ["GEOCODER_API_TEST_HOST"] = host os.environ["GEOCODER_API_TEST_HOST"] = host
os.environ["GEOCODER_API_TEST_SCHEMA"] = schema
def clean_environment_variables(): def clean_environment_variables():
@ -71,6 +78,7 @@ def clean_environment_variables():
del os.environ["GEOCODER_API_TEST_API_KEY"] del os.environ["GEOCODER_API_TEST_API_KEY"]
del os.environ["GEOCODER_API_TEST_TABLE_NAME"] del os.environ["GEOCODER_API_TEST_TABLE_NAME"]
del os.environ["GEOCODER_API_TEST_HOST"] del os.environ["GEOCODER_API_TEST_HOST"]
del os.environ["GEOCODER_API_TEST_SCHEMA"]
if __name__ == "__main__": if __name__ == "__main__":
main() main()