First iteration to automate smoke tests

This commit is contained in:
Mario de Frutos 2015-12-04 16:58:28 +01:00
parent d0ebd003de
commit 1397b3fcaf
3 changed files with 385 additions and 0 deletions

View File

@ -0,0 +1,265 @@
iso,name
AF,Afghanistan
AL,Albania
DZ,Algeria
AS,"American Samoa"
AD,Andorra
AO,Angola
AI,Anguilla
AQ,Antarctica
AG,"Antigua and Barbuda"
AR,Argentina
AM,Armenia
AW,Aruba
AU,Australia
AT,Austria
AZ,Azerbaijan
BS,Bahamas
BH,Bahrain
BD,Bangladesh
BB,Barbados
BY,Belarus
BE,Belgium
BZ,Belize
BJ,Benin
BM,Bermuda
BT,Bhutan
BO,Bolivia
BA,"Bosnia and Herzegovina"
BW,Botswana
BV,"Bouvet Island"
BR,Brazil
BQ,"British Antarctic Territory"
IO,"British Indian Ocean Territory"
VG,"British Virgin Islands"
BN,Brunei
BG,Bulgaria
BF,"Burkina Faso"
BI,Burundi
KH,Cambodia
CM,Cameroon
CA,Canada
CT,"Canton and Enderbury Islands"
CV,"Cape Verde"
KY,"Cayman Islands"
CF,"Central African Republic"
TD,Chad
CL,Chile
CN,China
CX,"Christmas Island"
CC,"Cocos [Keeling] Islands"
CO,Colombia
KM,Comoros
CG,"Congo - Brazzaville"
CD,"Congo - Kinshasa"
CK,"Cook Islands"
CR,"Costa Rica"
HR,Croatia
CU,Cuba
CY,Cyprus
CZ,"Czech Republic"
CI,"Côte dIvoire"
DK,Denmark
DJ,Djibouti
DM,Dominica
DO,"Dominican Republic"
NQ,"Dronning Maud Land"
DD,"East Germany"
EC,Ecuador
EG,Egypt
SV,"El Salvador"
GQ,"Equatorial Guinea"
ER,Eritrea
EE,Estonia
ET,Ethiopia
FK,"Falkland Islands"
FO,"Faroe Islands"
FJ,Fiji
FI,Finland
FR,France
GF,"French Guiana"
PF,"French Polynesia"
TF,"French Southern Territories"
FQ,"French Southern and Antarctic Territories"
GA,Gabon
GM,Gambia
GE,Georgia
DE,Germany
GH,Ghana
GI,Gibraltar
GR,Greece
GL,Greenland
GD,Grenada
GP,Guadeloupe
GU,Guam
GT,Guatemala
GG,Guernsey
GN,Guinea
GW,Guinea-Bissau
GY,Guyana
HT,Haiti
HM,"Heard Island and McDonald Islands"
HN,Honduras
HK,"Hong Kong SAR China"
HU,Hungary
IS,Iceland
IN,India
ID,Indonesia
IR,Iran
IQ,Iraq
IE,Ireland
IM,"Isle of Man"
IL,Israel
IT,Italy
JM,Jamaica
JP,Japan
JE,Jersey
JT,"Johnston Island"
JO,Jordan
KZ,Kazakhstan
KE,Kenya
KI,Kiribati
KW,Kuwait
KG,Kyrgyzstan
LA,Laos
LV,Latvia
LB,Lebanon
LS,Lesotho
LR,Liberia
LY,Libya
LI,Liechtenstein
LT,Lithuania
LU,Luxembourg
MO,"Macau SAR China"
MK,Macedonia
MG,Madagascar
MW,Malawi
MY,Malaysia
MV,Maldives
ML,Mali
MT,Malta
MH,"Marshall Islands"
MQ,Martinique
MR,Mauritania
MU,Mauritius
YT,Mayotte
FX,"Metropolitan France"
MX,Mexico
FM,Micronesia
MI,"Midway Islands"
MD,Moldova
MC,Monaco
MN,Mongolia
ME,Montenegro
MS,Montserrat
MA,Morocco
MZ,Mozambique
MM,"Myanmar [Burma]"
NA,Namibia
NR,Nauru
NP,Nepal
NL,Netherlands
AN,"Netherlands Antilles"
NT,"Neutral Zone"
NC,"New Caledonia"
NZ,"New Zealand"
NI,Nicaragua
NE,Niger
NG,Nigeria
NU,Niue
NF,"Norfolk Island"
KP,"North Korea"
VD,"North Vietnam"
MP,"Northern Mariana Islands"
NO,Norway
OM,Oman
PC,"Pacific Islands Trust Territory"
PK,Pakistan
PW,Palau
PS,"Palestinian Territories"
PA,Panama
PZ,"Panama Canal Zone"
PG,"Papua New Guinea"
PY,Paraguay
YD,"People's Democratic Republic of Yemen"
PE,Peru
PH,Philippines
PN,"Pitcairn Islands"
PL,Poland
PT,Portugal
PR,"Puerto Rico"
QA,Qatar
RO,Romania
RU,Russia
RW,Rwanda
RE,Réunion
BL,"Saint Barthélemy"
SH,"Saint Helena"
KN,"Saint Kitts and Nevis"
LC,"Saint Lucia"
MF,"Saint Martin"
PM,"Saint Pierre and Miquelon"
VC,"Saint Vincent and the Grenadines"
WS,Samoa
SM,"San Marino"
SA,"Saudi Arabia"
SN,Senegal
RS,Serbia
CS,"Serbia and Montenegro"
SC,Seychelles
SL,"Sierra Leone"
SG,Singapore
SK,Slovakia
SI,Slovenia
SB,"Solomon Islands"
SO,Somalia
ZA,"South Africa"
GS,"South Georgia and the South Sandwich Islands"
KR,"South Korea"
ES,Spain
LK,"Sri Lanka"
SD,Sudan
SR,Suriname
SJ,"Svalbard and Jan Mayen"
SZ,Swaziland
SE,Sweden
CH,Switzerland
SY,Syria
ST,"São Tomé and Príncipe"
TW,Taiwan
TJ,Tajikistan
TZ,Tanzania
TH,Thailand
TL,Timor-Leste
TG,Togo
TK,Tokelau
TO,Tonga
TT,"Trinidad and Tobago"
TN,Tunisia
TR,Turkey
TM,Turkmenistan
TC,"Turks and Caicos Islands"
TV,Tuvalu
UM,"U.S. Minor Outlying Islands"
PU,"U.S. Miscellaneous Pacific Islands"
VI,"U.S. Virgin Islands"
UG,Uganda
UA,Ukraine
SU,"Union of Soviet Socialist Republics"
AE,"United Arab Emirates"
GB,"United Kingdom"
US,"United States"
ZZ,"Unknown or Invalid Region"
UY,Uruguay
UZ,Uzbekistan
VU,Vanuatu
VA,"Vatican City"
VE,Venezuela
VN,Vietnam
WK,"Wake Island"
WF,"Wallis and Futuna"
EH,"Western Sahara"
YE,Yemen
ZM,Zambia
ZW,Zimbabwe
AX,"Åland Islands"
1 iso name
2 AF Afghanistan
3 AL Albania
4 DZ Algeria
5 AS American Samoa
6 AD Andorra
7 AO Angola
8 AI Anguilla
9 AQ Antarctica
10 AG Antigua and Barbuda
11 AR Argentina
12 AM Armenia
13 AW Aruba
14 AU Australia
15 AT Austria
16 AZ Azerbaijan
17 BS Bahamas
18 BH Bahrain
19 BD Bangladesh
20 BB Barbados
21 BY Belarus
22 BE Belgium
23 BZ Belize
24 BJ Benin
25 BM Bermuda
26 BT Bhutan
27 BO Bolivia
28 BA Bosnia and Herzegovina
29 BW Botswana
30 BV Bouvet Island
31 BR Brazil
32 BQ British Antarctic Territory
33 IO British Indian Ocean Territory
34 VG British Virgin Islands
35 BN Brunei
36 BG Bulgaria
37 BF Burkina Faso
38 BI Burundi
39 KH Cambodia
40 CM Cameroon
41 CA Canada
42 CT Canton and Enderbury Islands
43 CV Cape Verde
44 KY Cayman Islands
45 CF Central African Republic
46 TD Chad
47 CL Chile
48 CN China
49 CX Christmas Island
50 CC Cocos [Keeling] Islands
51 CO Colombia
52 KM Comoros
53 CG Congo - Brazzaville
54 CD Congo - Kinshasa
55 CK Cook Islands
56 CR Costa Rica
57 HR Croatia
58 CU Cuba
59 CY Cyprus
60 CZ Czech Republic
61 CI Côte d’Ivoire
62 DK Denmark
63 DJ Djibouti
64 DM Dominica
65 DO Dominican Republic
66 NQ Dronning Maud Land
67 DD East Germany
68 EC Ecuador
69 EG Egypt
70 SV El Salvador
71 GQ Equatorial Guinea
72 ER Eritrea
73 EE Estonia
74 ET Ethiopia
75 FK Falkland Islands
76 FO Faroe Islands
77 FJ Fiji
78 FI Finland
79 FR France
80 GF French Guiana
81 PF French Polynesia
82 TF French Southern Territories
83 FQ French Southern and Antarctic Territories
84 GA Gabon
85 GM Gambia
86 GE Georgia
87 DE Germany
88 GH Ghana
89 GI Gibraltar
90 GR Greece
91 GL Greenland
92 GD Grenada
93 GP Guadeloupe
94 GU Guam
95 GT Guatemala
96 GG Guernsey
97 GN Guinea
98 GW Guinea-Bissau
99 GY Guyana
100 HT Haiti
101 HM Heard Island and McDonald Islands
102 HN Honduras
103 HK Hong Kong SAR China
104 HU Hungary
105 IS Iceland
106 IN India
107 ID Indonesia
108 IR Iran
109 IQ Iraq
110 IE Ireland
111 IM Isle of Man
112 IL Israel
113 IT Italy
114 JM Jamaica
115 JP Japan
116 JE Jersey
117 JT Johnston Island
118 JO Jordan
119 KZ Kazakhstan
120 KE Kenya
121 KI Kiribati
122 KW Kuwait
123 KG Kyrgyzstan
124 LA Laos
125 LV Latvia
126 LB Lebanon
127 LS Lesotho
128 LR Liberia
129 LY Libya
130 LI Liechtenstein
131 LT Lithuania
132 LU Luxembourg
133 MO Macau SAR China
134 MK Macedonia
135 MG Madagascar
136 MW Malawi
137 MY Malaysia
138 MV Maldives
139 ML Mali
140 MT Malta
141 MH Marshall Islands
142 MQ Martinique
143 MR Mauritania
144 MU Mauritius
145 YT Mayotte
146 FX Metropolitan France
147 MX Mexico
148 FM Micronesia
149 MI Midway Islands
150 MD Moldova
151 MC Monaco
152 MN Mongolia
153 ME Montenegro
154 MS Montserrat
155 MA Morocco
156 MZ Mozambique
157 MM Myanmar [Burma]
158 NA Namibia
159 NR Nauru
160 NP Nepal
161 NL Netherlands
162 AN Netherlands Antilles
163 NT Neutral Zone
164 NC New Caledonia
165 NZ New Zealand
166 NI Nicaragua
167 NE Niger
168 NG Nigeria
169 NU Niue
170 NF Norfolk Island
171 KP North Korea
172 VD North Vietnam
173 MP Northern Mariana Islands
174 NO Norway
175 OM Oman
176 PC Pacific Islands Trust Territory
177 PK Pakistan
178 PW Palau
179 PS Palestinian Territories
180 PA Panama
181 PZ Panama Canal Zone
182 PG Papua New Guinea
183 PY Paraguay
184 YD People's Democratic Republic of Yemen
185 PE Peru
186 PH Philippines
187 PN Pitcairn Islands
188 PL Poland
189 PT Portugal
190 PR Puerto Rico
191 QA Qatar
192 RO Romania
193 RU Russia
194 RW Rwanda
195 RE Réunion
196 BL Saint Barthélemy
197 SH Saint Helena
198 KN Saint Kitts and Nevis
199 LC Saint Lucia
200 MF Saint Martin
201 PM Saint Pierre and Miquelon
202 VC Saint Vincent and the Grenadines
203 WS Samoa
204 SM San Marino
205 SA Saudi Arabia
206 SN Senegal
207 RS Serbia
208 CS Serbia and Montenegro
209 SC Seychelles
210 SL Sierra Leone
211 SG Singapore
212 SK Slovakia
213 SI Slovenia
214 SB Solomon Islands
215 SO Somalia
216 ZA South Africa
217 GS South Georgia and the South Sandwich Islands
218 KR South Korea
219 ES Spain
220 LK Sri Lanka
221 SD Sudan
222 SR Suriname
223 SJ Svalbard and Jan Mayen
224 SZ Swaziland
225 SE Sweden
226 CH Switzerland
227 SY Syria
228 ST São Tomé and Príncipe
229 TW Taiwan
230 TJ Tajikistan
231 TZ Tanzania
232 TH Thailand
233 TL Timor-Leste
234 TG Togo
235 TK Tokelau
236 TO Tonga
237 TT Trinidad and Tobago
238 TN Tunisia
239 TR Turkey
240 TM Turkmenistan
241 TC Turks and Caicos Islands
242 TV Tuvalu
243 UM U.S. Minor Outlying Islands
244 PU U.S. Miscellaneous Pacific Islands
245 VI U.S. Virgin Islands
246 UG Uganda
247 UA Ukraine
248 SU Union of Soviet Socialist Republics
249 AE United Arab Emirates
250 GB United Kingdom
251 US United States
252 ZZ Unknown or Invalid Region
253 UY Uruguay
254 UZ Uzbekistan
255 VU Vanuatu
256 VA Vatican City
257 VE Venezuela
258 VN Vietnam
259 WK Wake Island
260 WF Wallis and Futuna
261 EH Western Sahara
262 YE Yemen
263 ZM Zambia
264 ZW Zimbabwe
265 AX Åland Islands

View File

@ -0,0 +1,29 @@
import os, time, requests, json
from unittest import TestCase
from nose.tools import assert_raises
class TestConfigHelper(TestCase):
def setUp(self):
username = os.environ["GEOCODER_API_TEST_USERNAME"]
api_key = os.environ["GEOCODER_API_TEST_API_KEY"]
host = os.environ["GEOCODER_API_TEST_HOST"]
self.table_name = os.environ["GEOCODER_API_TEST_TABLE_NAME"]
self.sql_api_url = "https://{0}.{1}/api/v2/sql?api_key={2}".format(username, host, api_key)
def test_if_select_with_admin0_is_ok(self):
query = "SELECT cdb_geocode_admin0_polygon(name) as geometry FROM {0} LIMIT 1".format(self.table_name)
geometry = self.execute_query(query)
assert geometry != None
def build_sql_api_query_url(self, query):
return "{0}&q={1}".format(self.sql_api_url,query)
def execute_query(self, query):
query_url = self.build_sql_api_query_url(query)
query_response = requests.get(query_url)
if query_response.status_code != 200:
raise Exception("Error executing SQL API query")
query_response_data = json.loads(query_response.text)
return query_response_data['rows'][0]['geometry']

91
test/run_tests.py Normal file
View File

@ -0,0 +1,91 @@
import getopt, sys, requests, time, json, subprocess, os
def main():
opts, args = getopt.getopt(sys.argv[1:], "h", ["help", "host="])
if len(args) < 2:
usage()
sys.exit()
host = "cartodb.com"
username = args[0]
api_key = args[1]
table_name = "geocoder_api_test_dataset_".format(int(time.time()))
for o, a in opts:
if o in ("-h", "--help"):
usage()
sys.exit()
elif o in ("--host"):
host = opts[0][1]
else:
assert False, "unhandled option"
try:
table_name = import_test_dataset(username, api_key, host)
set_environment_variables(username, api_key, table_name, host)
execute_tests()
finally:
clean_environment_variables()
clean_test_dataset(username, api_key, table_name, host)
def usage():
print """Usage: run_tests.py [options] username api_key
Options:
-h: Show this help
--host: take that host as base (by default is cartodb.com). Eg. cartodb.com"""
def import_test_dataset(username, api_key, host):
url = "https://{0}.{1}/api/v1/imports/?api_key={2}".format(username, host, api_key)
dataset = {'file': open('fixtures/geocoder_api_test_dataset.csv', 'rb')}
response = requests.post(url, files=dataset)
response_json = json.loads(response.text)
if not response_json['success']:
print "Error importing the test dataset: {0}".format(response.text)
sys.exit(1)
while(True):
table_name = get_imported_table_name(username, host, api_key, response_json['item_queue_id'])
if table_name:
return table_name
else:
time.sleep(5)
def get_imported_table_name(username, host, api_key, import_id):
import_data_url = "https://{0}.{1}/api/v1/imports/{2}?api_key={3}".format(
username, host, import_id, api_key
)
import_data_response = requests.get(import_data_url)
if import_data_response.status_code != 200:
print "Error getting the table name from the import data: {0}".format(import_data_response.text)
sys.exit(1)
import_data_json = json.loads(import_data_response.text)
return import_data_json['table_name']
def execute_tests():
print "Start testing..."
process = subprocess.Popen(["nosetests", "--where=integration/"])
process.wait()
print "Testing finished!"
def set_environment_variables(username, api_key, table_name, host):
os.environ["GEOCODER_API_TEST_USERNAME"] = username
os.environ["GEOCODER_API_TEST_API_KEY"] = api_key
os.environ["GEOCODER_API_TEST_TABLE_NAME"] = table_name
os.environ["GEOCODER_API_TEST_HOST"] = host
def clean_environment_variables():
print "Cleaning test dataset environment variables..."
del os.environ["GEOCODER_API_TEST_USERNAME"]
del os.environ["GEOCODER_API_TEST_API_KEY"]
del os.environ["GEOCODER_API_TEST_TABLE_NAME"]
del os.environ["GEOCODER_API_TEST_HOST"]
def clean_test_dataset(username, api_key, table_name, host):
print "Cleaning test dataset {0}...".format(table_name)
url = "https://{0}.{1}/api/v2/sql?q=drop table {2}&api_key={3}".format(username, host, table_name, api_key)
response = requests.get(url)
if response.status_code != 200:
print "Error cleaning the test dataset: {0}".format(response.text)
sys.exit(1)
if __name__ == "__main__":
main()